diff --git a/src/dyn_arr.c b/src/dyn_arr.c index 04197ab..53aa893 100644 --- a/src/dyn_arr.c +++ b/src/dyn_arr.c @@ -60,6 +60,12 @@ void dyn_arr_pop(void *array, size_t item_size) { header = realloc(dyna_get_header(array), new_size); } +void dyna_deinit(void *array) { + dyna_header *header = dyna_get_header(array); + header = NULL; + 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)