#ifndef ARRAY_H #define ARRAY_H #include typedef struct { char *data; unsigned int length; } Array; extern Array *array_create(unsigned int type_size); extern Array *array_create_by_size(unsigned int type_size, unsigned int reserved_size); extern void array_append(Array *arr, void *data); extern void array_insert(Array *arr, int index, void *data); extern void array_remove(Array *arr, int index); extern void array_reserve(Array *arr, unsigned int length); extern unsigned int array_get_type_size(Array *arr); extern void array_free(Array *arr); #endif // ARRAY_H