addition: destroy and clear
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "arraylist.h"
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user