c-使用strcmp时出现分段故障(核心转储)



我正在制作一个应用程序,该应用程序注册客户端的汽车并具有一些过滤选项。我几乎可以轻松地完成所有这些操作,但按模型进行过滤是行不通的。如果有人能指导我做错事,我将不胜感激。

gitlab中的完整代码:https://gitlab.com/salgadoth/car-ownership-in-c/-/blob/master/carownership.c

void listModel()
{
int i, comp;
char model[20];
printf("nTYPE IN DESIRED MODEL:n");
fflush(stdin);
scanf("%s", &model);
printf("DESIRED MODEL: %snn", model);

for(i = 0; i < counter; i++)
{
if(strcmp(model, car[i].model) == 0)
{
printf("nBRAND: %s", car[i].brand);
printf("nMODEL: %s", car[i].model);
printf("nLICENSE PLATE: %s", car[i].license_plate);
printf("nYEAR OF FABRICATION: %dn", car[i].year);
printf("---------------------------n");
}
else
{
printf("nERROR - NO CAR FOUND");
return 1;
}
}
}

您永远不会初始化counter,因此没有什么可以阻止for循环运行到未初始化的对象中。如果model不包含有效字符串,则strcmp可能出错。

相关内容

  • 没有找到相关文章

最新更新