diff --git a/include/htd/data_structure/dynamic_array.h b/include/htd/data_structure/dynamic_array.h index ff5d4a5..6af9a43 100644 --- a/include/htd/data_structure/dynamic_array.h +++ b/include/htd/data_structure/dynamic_array.h @@ -15,6 +15,8 @@ void dynarr_init(DynamicArray* arr, usize size); void* dynarr_at(DynamicArray* arr, usize idx); +void dynarr_set(DynamicArray* arr, usize idx, void* data); + void dynarr_push(DynamicArray* arr, void* data); void dynarr_free(DynamicArray* arr); diff --git a/src/data_structure/dynamic_array.c b/src/data_structure/dynamic_array.c index a4ec755..86df5e9 100644 --- a/src/data_structure/dynamic_array.c +++ b/src/data_structure/dynamic_array.c @@ -18,6 +18,10 @@ void* dynarr_at(DynamicArray* arr, usize idx) { return &((u8*)arr->data)[arr->data_size * idx]; } +void dynarr_set(DynamicArray* arr, usize idx, void* data) { + memcpy(&((u8*)arr->data)[arr->data_size * idx], data, arr->data_size); +} + void* dynarr_last(DynamicArray* arr) { return &((u8*)arr->data)[arr->data_size * (arr->len - 1)]; }