From d62f358393ba80825bb340a96be789ba314e3960 Mon Sep 17 00:00:00 2001 From: aindros Date: Wed, 8 Jan 2020 22:11:47 +0100 Subject: src --- src/list.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/list.c (limited to 'src/list.c') diff --git a/src/list.c b/src/list.c new file mode 100644 index 0000000..561b308 --- /dev/null +++ b/src/list.c @@ -0,0 +1,34 @@ +#include +#include "list.h" + +/* + * Creates a new list. + */ +List* List_Create(void) +{ + List* list = malloc(sizeof(List)); + + list->next = NULL; /* nwxt element is empty */ + list->current = list; /* points to itself */ + list->first = list; /* first element is itself */ + list->data = NULL; /* data is empty */ + list->size = 0; + + return list; +} + +/* + * Adds a new element to the list. + */ +void List_Add(List* list, /* list where to add new element */ + void* data, /* data to add */ + int size_of) /* size of the data */ +{ + void* dest = malloc(size_of); /* allocates memory like data parameter */ + + memcpy(dest, data, size_of); /* copies data inside dest */ + list->data = dest; + + list->next = malloc(sizeof(List)); + list->size ++; +} -- cgit v1.2.3