我想知道这种情况。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; –