Beispielsweise soll die Funktion:
void msearch( void *suchschluessel, void *feld, size_t anzahl, size_t elementgroesse, int (*vergleichsfunktion)( const void *p1, const void *p2 ) );gebaut werden, die sich wie bsearch() verhält.
Ob die neue Funktion tatsächlich binäre Suche verwendet, ist zweitrangig.
Hierin müssen zum Sortieren Feldelemente umkopiert werden; aber
innerhalb der Funktion ist der Datentyp der Elemente
unbekannt. Deshalb kann man nicht mit einer
Zuweisung (Operator =
)
arbeiten. Als Alternative bietet sich die Funktion
memcpy()
an. Unter Linux oder Unix siehe dazu:
man 3 memcpy
Themen:
Lösung siehe bsearch, qsort selbst bauen.