summary refs log tree commit diff
diff options
context:
space:
mode:
authorWormHeamer2025-02-10 02:00:02 -0500
committerWormHeamer2025-02-10 02:00:02 -0500
commit299e2d107eaebc45117c8ac6072bd860e2e4f9be (patch)
treeb82b984a59df5fd95e2c7ca8e07bc2d854eeb24a
parentc762664ef5990c6e8684d5d8a34f811b18df0465 (diff)
add DA_INIT_SIZE
-rw-r--r--dynarr.h11
1 files 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))