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.