diff options
author | 2020-01-08 22:11:47 +0100 | |
---|---|---|
committer | 2020-01-08 22:11:47 +0100 | |
commit | d62f358393ba80825bb340a96be789ba314e3960 (patch) | |
tree | c4166dede6e543d0e11d5aae260046728172c2d3 /src/list.c | |
parent | 50928935b894acb32916bf971d719428cf19ac8c (diff) | |
download | utils-d62f358393ba80825bb340a96be789ba314e3960.tar.gz utils-d62f358393ba80825bb340a96be789ba314e3960.zip |
src
Diffstat (limited to 'src/list.c')
-rw-r--r-- | src/list.c | 34 |
1 files changed, 34 insertions, 0 deletions
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 <stdlib.h> +#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 ++; +} |