Strcmp 使应用程序崩溃

nko*_*ber 0 c strcmp

我有这个功能

int does_exist_in_array(char team[], struct team *teams) {
    int i;
    for(i = 0; i < MAX_TEAMS_AMOUNT; i++) {
        if(!strcmp(team, teams[i].name)) {
            return 1;
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时它崩溃了。有人知道出了什么问题吗?难道是我用错了?

cni*_*tar 5

发生这种情况的原因有多种:

  • 任一参数为 NULL 或为无效指针
  • 任一参数指向的字符串不是以 0 结尾的
  • MAX_TEAMS_AMOUNT team元素个数少于