From 299e2d107eaebc45117c8ac6072bd860e2e4f9be Mon Sep 17 00:00:00 2001 From: WormHeamer Date: Mon, 10 Feb 2025 02:00:02 -0500 Subject: add DA_INIT_SIZE --- dynarr.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dynarr.h b/dynarr.h index f8e5f20..46a77f9 100644 --- a/dynarr.h +++ b/dynarr.h @@ -13,14 +13,17 @@ typedef struct { size_t count, capacity; } DynArrHeader; #define DYNARR(type) type * #define DA_HEADER(da) ((DynArrHeader*)(da) - 1) -#define DA_INIT_CAP 16 -#define DA_INIT(da) do {\ - char *da_init_ptr = ((char*)malloc(sizeof(DynArrHeader) + DA_INIT_CAP * sizeof(*da)));\ +#define DA_DEFAULT_INIT_SIZE 16 + +#define DA_INIT_SIZE(da, sz) do {\ + char *da_init_ptr = ((char*)malloc(sizeof(DynArrHeader) + sz * sizeof(*da)));\ if (!da_init_ptr) err(1, "dynamic array allocation failed");\ da = (void *)(da_init_ptr + sizeof(DynArrHeader));\ - *DA_HEADER(da) = (DynArrHeader) { 0, DA_INIT_CAP };\ + *DA_HEADER(da) = (DynArrHeader) { 0, sz };\ } while(0) +#define DA_INIT(da) DA_INIT_SIZE(da, DA_DEFAULT_INIT_SIZE) + #define DA_FREE(da)\ free(DA_HEADER(da)) -- cgit 1.4.1-2-gfad0