]> git.lizzy.rs Git - dragonstd.git/blobdiff - array.c
Add array_idx
[dragonstd.git] / array.c
diff --git a/array.c b/array.c
index 714fa4dc78c122ac7bfda61d7b9899155593a4d8..70ba8faa07b6207e6c421816487a9f50a3b403f1 100644 (file)
--- a/array.c
+++ b/array.c
@@ -1,5 +1,5 @@
 #include <stdlib.h>        // for malloc, realloc, free, qsort
-#include <string.h>        // for memmove, memcpy
+#include <string.h>        // for memmove, memcpy, memcmp
 #include "array.h"
 #include "bits/callback.h" // for Comparator
 
@@ -55,6 +55,15 @@ void array_apd(Array *array, const void *ptr)
        memcpy(array->ptr + oldsiz * array->mbs, ptr, array->mbs);
 }
 
+ssize_t array_idx(Array *array, const void *ptr)
+{
+       for (size_t i = 0; i < array->siz; i++)
+               if (memcmp(array->ptr + i * array->mbs, ptr, array->mbs) == 0)
+                       return i;
+
+       return -1;
+}
+
 void array_cpy(Array *array, void **ptr, size_t *n)
 {
        *n = array->siz;