我想知道這種情況。qsort in C(動態分配)
,當我確定了這句話
struct soccer team[100] ;
我可以做快速排序;
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 ;
}
當我做動態分配存在
struct soccer*team[MAX] ;
team[Index] = (SOC*)malloc(sizeof(SOC)) ;
錯誤。 (快速排序和比較相同)
我想知道如何使用它(快速排序動態分配結構)
請!
例子(當我使用第一種方式)
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
轉換
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和比較是相同的」是不好的,因爲相同的比較函數不應當被用於不同的元素類型。 – MikeCAT
[請參閱此討論,爲什麼不在'C'中爲'malloc()'和family生成返回值。](http://stackoverflow.com/q/605845/2173917)。 –
我的迷惘! 原始碼:typedef struct soccer SOC; –