Implemented stdlib.h

This commit is contained in:
2024-10-25 12:01:54 +02:00
parent a797d4366a
commit 18d1b7de6a
8 changed files with 156 additions and 24 deletions
+25
View File
@@ -0,0 +1,25 @@
#include <stdlib.h>
#include <stddef.h>
void* bsearch(const void* key, const void* base, size_t nitem, size_t size, int (*compar)(const void*, const void*)) {
size_t left = 0;
size_t right = nitem;
while (left < right) {
size_t mid = left + (right - left) / 2;
void* midEl = (char*)base + mid * size;
int cmp = compar(key, midEl);
if (cmp < 0) {
right = mid;
} else if (cmp > 0) {
left = mid + 1;
} else {
return midEl;
}
}
return NULL;
}