Added deinit command to free the memory

This commit is contained in:
Warwick New 2024-12-16 22:12:08 +00:00
parent c80b38d82d
commit 60af03e5cc
2 changed files with 8 additions and 1 deletions

View file

@ -60,6 +60,12 @@ void dyn_arr_pop(void *array, size_t item_size) {
header = realloc(dyna_get_header(array), new_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) { bool dyna_empty(void *array) {
if (dyna_length(array) == 0) { if (dyna_length(array) == 0) {
return true; return true;

View file

@ -13,7 +13,6 @@
* - clear aka erase * - clear aka erase
* - insert * - insert
* - (optional) insert range * - (optional) insert range
* - pop
* - (optional) swap * - (optional) swap
* - (optional) resize * - (optional) resize
* - Sanity checks * - 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))) #define dyna_pop(array) dyn_arr_pop(array, sizeof(typeof(*array)))
void dyn_arr_pop(void *array, size_t item_size); void dyn_arr_pop(void *array, size_t item_size);
void dyna_deinit(void *array);
// Get meta data // Get meta data
#define dyna_get_header(array) ((dyna_header *)(array)-1) #define dyna_get_header(array) ((dyna_header *)(array)-1)
#define dyna_length(array) (dyna_get_header(array)->length) #define dyna_length(array) (dyna_get_header(array)->length)