#include "list.h" #include #include struct list *list_prepend(struct list *list, const void *value, size_t data_size) { struct list *new = malloc(sizeof(struct list)); new->next = list; new->data = malloc(sizeof(void *)); memcpy(new->data, value, data_size); return new; } size_t list_length(struct list *list) { size_t res = 0; while (list) { res++; list = list->next; } return res; } void list_destroy(struct list *list) { while (list) { struct list *tmp = list->next; free(list->data); free(list); list = tmp; } }