aboutsummaryrefslogtreecommitdiff
path: root/array.c
diff options
context:
space:
mode:
Diffstat (limited to 'array.c')
-rw-r--r--array.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/array.c b/array.c
index 25f471b..b65ad12 100644
--- a/array.c
+++ b/array.c
@@ -11,6 +11,10 @@ void array_init(Array *arr) {
array_init_sized(arr, sizeof(void*));
}
+void array_init_from(Array *arr, Array *from) {
+ array_init_sized(arr, from->elem_size);
+}
+
void array_init_sized(Array *arr, size_t elem_size) {
memset(arr, 0, sizeof *arr);
arr->elem_size = elem_size;
@@ -143,3 +147,7 @@ bool array_resize(Array *arr, size_t len) {
}
return false;
}
+
+void array_sort(Array *arr, int (*compar)(const void*, const void*)) {
+ qsort(arr->items, arr->len, arr->elem_size, compar);
+}