#include "list.h" #include LIST* list_add(LIST* list, void* item) { if (list == NULL) { list = (LIST*)malloc(sizeof(LIST)); list->size = 0; list->list = (void**)malloc(sizeof(0)); } list->size ++; void** new_list = (void**)reallocarray(list->list, list->size, sizeof(void*)); new_list[list->size-1] = item; list->list = new_list; return list; } LIST* list_remove(LIST* list, unsigned int pos) { for(unsigned int i = pos; i < list->size - 1; i++) list->list[i] = list->list[i + 1]; list->size--; void** new_list = reallocarray(list->list, list->size, sizeof(void*)); list->list = new_list; return list; } void list_free(LIST* list) { for (unsigned int x = 0; x < list->size; x++) free(list->list[x]); free(list->list); free(list); } void *list_get(LIST *list, unsigned int index) { if (list == NULL) return NULL; if (index < list->size) return list->list[index]; return NULL; }