c - strcmp 使应用程序崩溃

标签 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;
}

当我运行应用程序时它崩溃了。任何人都知道什么是错的?我用错了吗?

最佳答案

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

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

关于c - strcmp 使应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13500086/

相关文章:

c - strcmp 和 strcpy 已损坏。当我尝试用 C 语言按字母顺序排列它们时,我丢失了一个单词

c - 仅当不是目录时才打开文件

c++ - 如何在 C/C++ 中链接两个 .so

c - C 中包含递增的逻辑表达式的求值

c - 在 C 中比较多个字符串的最佳方法是什么?

c - 尝试在 if 函数中使用 strcmp 来计算句子中的字谜词

c - 如何从 PCM 获取缓冲区?

c++ - 是否存在 fseek/ftell 给出错误文件大小的情况?

C - 比较字符串文字与字符数组

c - 副作用:strcmp() 是纯函数吗