diff options
Diffstat (limited to 'Converter/src/array.c')
-rw-r--r-- | Converter/src/array.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Converter/src/array.c b/Converter/src/array.c new file mode 100644 index 0000000..442a4b5 --- /dev/null +++ b/Converter/src/array.c @@ -0,0 +1,28 @@ +#include "../includes/array.h" +#include <malloc.h> + +void array_init(array_t *arr) +{ + arr = malloc(sizeof(*arr)); + arr->sz_used = 0; + arr->sz_allocated = 8; + arr->data = malloc(arr->sz_allocated); +} + +void array_append(array_t *arr, void *data) +{ + if (arr->sz_allocated == arr->sz_used) + { + arr->sz_allocated *= 2; + arr->data = realloc(arr->data, arr->sz_allocated); + } + arr->data[arr->sz_used] = data; + ++arr->sz_used; +} + +void *array_read(array_t *arr, int index) +{ + if (index > arr->sz_used) + return NULL; + return arr->data[index]; +} |