// // Created by Ajurna on 28/07/2025. // #include "data.h" #include #include char_array_t *char_array_create(int capacity) { char_array_t *array = malloc(sizeof(char_array_t)); array->capacity = capacity; array->size = 0; array->data = calloc(capacity, sizeof(char)); return array; } void char_array_destroy(char_array_t *array) { free(array->data); free(array); }; void char_array_append(char_array_t *array, char *value, size_t length) { if (array->data == NULL) { exit(1); } printf("old size: %llu\n", array->size); printf("length: %llu\n", length); size_t new_size = array->size + length; printf("New size: %llu\n", new_size); if (new_size > array->capacity) { array->capacity = new_size; char *new_array = realloc(array->data, array->capacity); array->data = new_array; if (array->data == NULL) { printf("Failed to allocate memory for array\n"); exit(1); } } memcpy(array->data+array->size, value, length); array->size = new_size; }; void char_array_print(const char_array_t *array) { printf("%s", array->data); }; void char_array_wipe(char_array_t *array) { array->size = 0; memset(array->data, 0, array->capacity); };