我对这段代码有问题,因为它无法正确编译。我犯了个错误:
初始化“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)
}
最佳答案
您似乎忘记了指针声明中的*
:
int sammenlign_hold (const void *p1, const void *p2) {
loebsdata2017 *resultat1 = (loebsdata2017 *)p1;
loebsdata2017 *resultat2 = (loebsdata2017 *)p2;
return strcmp(resultat1 -> rytterhold, resultat2 -> rytterhold)
}