我有一个结构:
typedef struct personalData
{
char name[20];
char * remarks;
int age;
float weight;
} personalData;
Run Code Online (Sandbox Code Playgroud)
我需要按重量对数据进行排序qsort().这是我的weightSort功能:
void weightSort(personalData * data[], int len)
{
qsort(data, len, sizeof(struct personalData *), structSortWeight);
}
Run Code Online (Sandbox Code Playgroud)
where len= 10(在使用某些不同的函数之前计算,但可能无关紧要),data[]定义main()如下:
struct personalData * data[10];
Run Code Online (Sandbox Code Playgroud)
最后structSortWeight:
int structSortWeight(const void *a, const void *b)
{
personalData *p1 = (personalData *)a;
personalData *p2 = (personalData *)b;
return (p1->weight - p2->weight);
}
Run Code Online (Sandbox Code Playgroud)
我的程序在开始排序时崩溃了.我想补充一点,当我改变了第三个参数中qsort(),以sizeof(float)它不会崩溃,但p1->weight并 …