Ich möchte diese Situation wissen.qsort in C (dynamische Zuordnung)
wenn ich definieren diesen Satz
struct soccer team[100] ;
I qsort tun können;
qsort(team, MAX , sizeof(team[0]) , compare) ;
int compare(const void *a, const void *b)
{
SOC *A1 = (SOC*)a ;
SOC *B1 = (SOC*)b ;
if(A1->score > B1->score)
return -1 ;
else if (A1->score == B1->score)
return 0 ;
else
return 1 ;
}
Wenn ich die dynamische Zuordnung tun
struct soccer*team[MAX] ;
team[Index] = (SOC*)malloc(sizeof(SOC)) ;
Fehler vorlag. (Qsort und vergleichen Sie ist gleich)
Ich möchte wissen, wie es verwenden (qsort für die dynamische Zuordnung struct)
bitte!
Beispiel (wenn ich erste Weg benutzen)
Man 3 1 1 16
Che 2 2 2 8
Asn 0 6 0 6
hot 6 0 0 18
City 0 0 6 0
Bar 1 5 0 8
umgewandelt
hot 6 0 0 18
Man 3 1 1 16
Che 2 2 2 8
Bar 1 5 0 8
Asn 0 6 0 6
City 0 0 6 0
„qsort und vergleichen Sie ist das gleiche“ es schlecht ist, weil die gleiche Vergleichsfunktion nicht für verschiedenen Elementtyp verwendet werden soll. – MikeCAT
[Bitte lesen Sie diese Diskussion darüber, warum nicht der Rückgabewert von 'malloc()' und Familie in 'C' umgewandelt werden soll. (Http://stackoverflow.com/q/605845/2173917). –
mein Fehler! Originalcode: typedef struct Fußball SOC; –