From a1cf2c4602fcadff69485d13dba7f134f7a86335 Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Sat, 1 Mar 2014 15:29:45 +0200 Subject: [PATCH] Add array alloc with initial size --- src/array.c | 11 +++++++++++ src/array.h | 1 + 2 files changed, 12 insertions(+) diff --git a/src/array.c b/src/array.c index 7d6cf69e8..4639b4e0c 100644 --- a/src/array.c +++ b/src/array.c @@ -25,6 +25,17 @@ void array_alloc(struct array **a, array_dtor dtor) *a = array; } +void array_alloc_init(struct array **a, array_dtor dtor, int size) +{ + struct array *array; + array = xalloc(sizeof(struct array)); + array->index = 0; + array->length = size; + array->dtor = dtor; + array->data = xalloc(array->length*sizeof(void*)); + *a = array; +} + void array_free(struct array *array) { if (array->dtor != NULL) { diff --git a/src/array.h b/src/array.h index dfaf4a6de..f4729aa7e 100644 --- a/src/array.h +++ b/src/array.h @@ -9,6 +9,7 @@ typedef struct array array_t; typedef void (*array_dtor)(void*); typedef int (*array_comp)(const void*, const void*); void array_alloc(struct array **array, array_dtor dtor); +void array_alloc_init(struct array **array, array_dtor dtor, int size); void array_free(struct array *array); int array_length(struct array *array); void array_push_back(struct array *array, void *value);