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 75c3af43df
3 changed files with 8 additions and 1 deletions

View file

@ -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;

View file

@ -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)

View file

@ -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--) {