我在这段代码上有问题,因为它不能正确编译。我要明白这个错误:
使用不兼容类型'loebsdata2017 *‘(又名'struct loebsdata2017 *’)的表达式初始化'loebsdata2017‘(又名'struct loebsdata2017');使用*取消引用
我不知道该怎么修改我的代码。
int sammenlign_hold (const void *p1, const void *p2);
void opgave_2 (loebsdata2017 *alle_loebsdata2017) {
int i = 0;
for (i = 0; i < MAX_PERSONER; i++) {
qsort (alle_loebsdata2017, 792, sizeof (loebsdata2017), sammenlign_hold);
if(strcmp(alle_loebsdata2017[i].nationalitet, "DEN") == 0)
{
printf("%s \n", alle_loebsdata2017[i].rytternavn);
}
}
}
int sammenlign_hold (const void *p1, const void *p2) {
loebsdata2017 resultat1 = (loebsdata2017 *)p1,
loebsdata2017 resultat2 = (loebsdata2017 *)p2;
return strcmp(resultat1 -> rytterhold, resultat2 -> rytterhold)
} 发布于 2017-11-29 11:58:40
您似乎忘记了指针声明中的*:
int sammenlign_hold (const void *p1, const void *p2) {
loebsdata2017 *resultat1 = (loebsdata2017 *)p1;
loebsdata2017 *resultat2 = (loebsdata2017 *)p2;
return strcmp(resultat1 -> rytterhold, resultat2 -> rytterhold)
} https://stackoverflow.com/questions/47552208
复制相似问题