#ifndef VIETER_DYNARRAY #define VIETER_DYNARRAY #include #include #include "vieter_package.h" typedef struct vieter_package_dynarray vieter_package_dynarray; struct vieter_package_dynarray { char **array; size_t capacity; size_t size; }; /* * Allocate a dynamic array. */ vieter_package_dynarray *vieter_package_dynarray_init(size_t initial_capacity); /* * Initialise array (if it's not already initialised) and insert a string. */ void vieter_package_dynarray_add(vieter_package_dynarray *da, const char * s); /* * Deallocate dynamic array. */ void vieter_package_dynarray_free(vieter_package_dynarray *da); /* * Convert a vieter_package_dynarray into an array by freeing all its surrounding components * and returning the underlying array pointer. */ char **vieter_package_dynarray_convert(vieter_package_dynarray *da); #endif