diff --git a/src/arraylist.c b/src/arraylist.c index 957bfd2..c3e268c 100644 --- a/src/arraylist.c +++ b/src/arraylist.c @@ -1,6 +1,7 @@ #include "arraylist.h" #include #include +#include ArrayListResult arraylist_init(size_t capacity, size_t elem_size) { if (capacity == 0) { @@ -32,3 +33,28 @@ ArrayListResult arraylist_init(size_t capacity, size_t elem_size) { return (ArrayListResult) {.is_valid = true, .array = arr}; } + +ArrayListErr arraylist_destroy(ArrayList *arr) { + if (arr == NULL) { + return ARRLIST_NULL_ARG; + } + + arr->capacity = 0; + arr->elem_size = 0; + arr->len = 0; + free(arr->data); + arr->data = NULL; + return ARRLIST_OK; +} + +ArrayListErr arraylist_clear(ArrayList *arr) { + if (arr == NULL) { + return ARRLIST_NULL_ARG; + } + + memset(arr->data, 0, arr->capacity * arr->elem_size); + arr->capacity = 0; + arr->elem_size = 0; + arr->len = 0; + return ARRLIST_OK; +}