【发布时间】:2016-07-09 14:36:37
【问题描述】:
我想知道这种情况。
当我定义这句话时
struct soccer team[100] ;
我可以做qsort;
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)) ;
存在错误。 (qsort 和 compare 是一样的)
我想知道如何使用它(qsort 用于动态分配结构)
请!
示例(当我使用第一种方式时)
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 and compare is same" 这很糟糕,因为相同的比较函数不应该用于不同的元素类型。
-
我的错误!原代码:typedef struct football SOC ;