Add array alloc with initial size

This commit is contained in:
iabdalkader 2014-03-01 15:29:45 +02:00
parent f5b91439b2
commit a1cf2c4602
2 changed files with 12 additions and 0 deletions

View File

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

View File

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