addition: destroy and clear
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
#include "arraylist.h"
|
#include "arraylist.h"
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
ArrayListResult arraylist_init(size_t capacity, size_t elem_size) {
|
ArrayListResult arraylist_init(size_t capacity, size_t elem_size) {
|
||||||
if (capacity == 0) {
|
if (capacity == 0) {
|
||||||
@@ -32,3 +33,28 @@ ArrayListResult arraylist_init(size_t capacity, size_t elem_size) {
|
|||||||
|
|
||||||
return (ArrayListResult) {.is_valid = true, .array = arr};
|
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