Add copy functionality to dynamic array

This commit is contained in:
Hugo Mårdbrink 2025-04-19 20:12:38 +02:00
parent 2a87f8e144
commit 5b8bbbe0a6
2 changed files with 10 additions and 0 deletions

View file

@ -17,6 +17,8 @@ void* dynarr_at(DynamicArray* arr, usize idx);
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_free(DynamicArray* arr);

View file

@ -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);
}
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) {
return &((u8*)arr->data)[arr->data_size * (arr->len - 1)];
}