簡體   English   中英

使用 strcmp 時出現分段錯誤(核心轉儲)

[英]Segmentation Fault (core dumped) when using strcmp

我正在制作一個注冊客戶汽車並具有一些過濾選項的應用程序。 我幾乎可以輕松完成所有這些操作,但是 model 的過濾不起作用。 如果有人可以指導我做錯了什么,將不勝感激。

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

void listModel()
{
    int i, comp;
    char model[20];
    printf("\nTYPE IN DESIRED MODEL:\n");
    fflush(stdin);
    scanf("%s", &model);
    printf("DESIRED MODEL: %s\n\n", 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: %d\n", car[i].year);
            printf("---------------------------\n");
        }
        else
        {
            printf("\nERROR - NO CAR FOUND");
            return 1;
        }
    }
}

您永遠不會初始化counter ,因此沒有什么可以阻止您的for循環運行到您未初始化的對象中。 如果model不包含有效字符串,則strcmp可能會出錯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM