initial
This commit is contained in:
49
data.c
Normal file
49
data.c
Normal file
@@ -0,0 +1,49 @@
|
||||
//
|
||||
// Created by Ajurna on 28/07/2025.
|
||||
//
|
||||
|
||||
#include "data.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
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);
|
||||
};
|
||||
Reference in New Issue
Block a user