From 13a7c902c051fa8da1e476687c17bb5431d258e1 Mon Sep 17 00:00:00 2001 From: sanine Date: Tue, 3 Jan 2023 23:31:48 -0600 Subject: add kai_expand_array --- src/util/util.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/util/util.c (limited to 'src/util/util.c') diff --git a/src/util/util.c b/src/util/util.c new file mode 100644 index 0000000..c77b3f4 --- /dev/null +++ b/src/util/util.c @@ -0,0 +1,23 @@ +#include +#include +#include + + +void *kai_expand_array(void **array, size_t *count, size_t element_size) +{ + size_t new_count = *count + 1; + size_t new_size = element_size * new_count; + /* cast to uint8_t so we can do pointer arithmetic */ + uint8_t *new_array = realloc(*array, new_size); + if (new_array == NULL) { + fprintf(stderr, "[kalmia] ERROR: failed to add %ul bytes to %ul-byte array!\n", + element_size, element_size * *count); + return NULL; + } + + void *new_element = new_array + (*count * element_size); + + *array = new_array; + *count = new_count; + return new_element; +} -- cgit v1.2.1