SDL_bsearch3
Perform a binary search on a previously sorted array.
Usage
#include "SDL3/SDL.h"
void * SDL_bsearch(const void *key, const void *base, size_t nmemb, size_t size, SDL_CompareCallback compare);
Header file
Defined in SDL3/SDL_stdinc.h
Overview
For example:
-
typedef struct { int key; const char *string; } data; int SDLCALL compare(const void *a, const void *b) { const data *A = (const data *)a; const data *B = (const data *)b; if (A->n < B->n) { return -1; } else if (B->n < A->n) { return 1; } else { return 0; } } data values[] = { { 1, "first" }, { 2, "second" }, { 3, "third" } }; data key = { 2, NULL }; data *result = SDL_bsearch(&key, values, SDL_arraysize(values), sizeof(values[0]), compare);
Function parameters
key
|
a pointer to a key equal to the element being searched for. |
|---|---|
base
|
a pointer to the start of the array. |
nmemb
|
the number of elements in the array. |
size
|
the size of the elements in the array. |
compare
|
a function used to compare elements in the array. |
Return value
Returns a pointer to the matching element in the array, or NULL if not found.
Thread safety
It is safe to call this function from any thread.