Add copy functionality to dynamic array
This commit is contained in:
parent
2a87f8e144
commit
5b8bbbe0a6
2 changed files with 10 additions and 0 deletions
|
|
@ -17,6 +17,8 @@ void* dynarr_at(DynamicArray* arr, usize idx);
|
||||||
|
|
||||||
void dynarr_set(DynamicArray* arr, usize idx, void* data);
|
void dynarr_set(DynamicArray* arr, usize idx, void* data);
|
||||||
|
|
||||||
|
void dynarr_copy(DynamicArray* src, DynamicArray* dst);
|
||||||
|
|
||||||
void dynarr_push(DynamicArray* arr, void* data);
|
void dynarr_push(DynamicArray* arr, void* data);
|
||||||
|
|
||||||
void dynarr_free(DynamicArray* arr);
|
void dynarr_free(DynamicArray* arr);
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,14 @@ void dynarr_set(DynamicArray* arr, usize idx, void* data) {
|
||||||
memcpy(&((u8*)arr->data)[arr->data_size * idx], data, arr->data_size);
|
memcpy(&((u8*)arr->data)[arr->data_size * idx], data, arr->data_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dynarr_copy(DynamicArray* src, DynamicArray* dst) {
|
||||||
|
dst->data_size = src->data_size;
|
||||||
|
dst->len = src->len;
|
||||||
|
dst->capacity = src->capacity;
|
||||||
|
dst->data = (void*)malloc(dst->capacity * dst->data_size);
|
||||||
|
memcpy(dst->data, src->data, dst->len * dst->data_size);
|
||||||
|
}
|
||||||
|
|
||||||
void* dynarr_last(DynamicArray* arr) {
|
void* dynarr_last(DynamicArray* arr) {
|
||||||
return &((u8*)arr->data)[arr->data_size * (arr->len - 1)];
|
return &((u8*)arr->data)[arr->data_size * (arr->len - 1)];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue