#ifndef ARRAY_LIST_H #define ARRAY_LIST_H #include #define INITIAL_ARRAY_SIZE 100 typedef struct ArrayList { void** items; int size; int capacity; void (*item_destroyer)(void* item); } ArrayList; ArrayList* array_list_create(void (*item_destroyer)(void* item)); void array_list_delete(ArrayList* array_list); bool array_list_extend(ArrayList* array_list); bool array_list_add(ArrayList* array_list, void* item); void** array_list_to_array(const ArrayList* array_list); #endif