Ich möchte genau wissen, was der dritte Parameter sein soll, weil ich noch nie so etwas gesehen habe.mein Buch Implementierung von Insertion Sortierung in C
void sortPointers(void **ar, int n, int (*cmp)(const void *, const void *))
{
int j;
for (j = 1; j < n; j++)
{
int i = j - 1;
int *value = ar[j];
while (i >= 0 && cmp(ar[i], value) > 0)
{
ar[i+1] = ar[i];
i--;
}
ar[i+1] = value;
}
}
Es ist ein Funktionszeiger. Jetzt sollten Sie wissen, was Sie recherchieren müssen. –
Der dritte Parameter ist eine (Zeiger auf eine) Vergleichsfunktion, die zwei Elemente zum Sortieren benötigt und sie vergleicht. Wenn die Elemente in Ordnung sind, wird eine negative Zahl (oder 0 im Falle der Gleichheit) gegeben. Wenn die Elemente in der falschen Reihenfolge sind, geben Sie ein positives Ergebnis und sie werden getauscht. Das heißt, seine Ausgabe sollte ähnlich wie "strcmp" sein. –
Checkout ['qsort' Dokumentation] (http://en.cppreference.com/w/c/algorithm/qsort). Es hat "cmp" als ein Argument, das dem gleichen Zweck dient. –