diff --git a/src/dyn_arr.c b/src/dyn_arr.c index 04197ab..187ab9d 100644 --- a/src/dyn_arr.c +++ b/src/dyn_arr.c @@ -60,6 +60,10 @@ void dyn_arr_pop(void *array, size_t item_size) { header = realloc(dyna_get_header(array), new_size); } +void dyna_deinit(void *array) { + free(dyna_get_header(array)); +} + bool dyna_empty(void *array) { if (dyna_length(array) == 0) { return true; diff --git a/src/dyn_arr.h b/src/dyn_arr.h index b2d87a3..cebddef 100644 --- a/src/dyn_arr.h +++ b/src/dyn_arr.h @@ -13,7 +13,6 @@ * - clear aka erase * - insert * - (optional) insert range - * - pop * - (optional) swap * - (optional) resize * - Sanity checks @@ -41,6 +40,8 @@ void *dyna_ensure_capacity(void *array, size_t item_count, size_t item_size); #define dyna_pop(array) dyn_arr_pop(array, sizeof(typeof(*array))) void dyn_arr_pop(void *array, size_t item_size); +void dyna_deinit(void *array); + // Get meta data #define dyna_get_header(array) ((dyna_header *)(array)-1) #define dyna_length(array) (dyna_get_header(array)->length) diff --git a/src/main.c b/src/main.c index 4d88141..9b24bce 100644 --- a/src/main.c +++ b/src/main.c @@ -8,6 +8,8 @@ int main() { for (uint64_t i = 0; i < 9999999; i++) { dyna_append(dyna_array, i); + printf("length: %zu capacity: %zu\n", dyna_array[i], + dyna_capacity(dyna_array)); } for (uint64_t i = 9999999; i > 0; i--) {