From f6fedcb9c2987b3f08c639e35500eb8325bd694c Mon Sep 17 00:00:00 2001 From: laentropia Date: Tue, 14 Apr 2026 19:33:15 -0600 Subject: [PATCH] addition: destroy and clear --- src/arraylist.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) 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; +}