c - 为什么使用 strcmp 会出现段错误

标签 c segmentation-fault strcmp

我相信这是因为 strcmp()。到目前为止,我尝试了多种方法,这只是最新的。我的目标是获取数组的索引,以便我可以继续使用 switch 语句来执行代码。任何帮助将不胜感激,尽管我只期待“你不能这样做。”

大局是将这段代码合并到一个具有多个“功能”的“实用程序”文件中,并像 util("Ping") 一样调用它来执行 Ping 等等...

int main(){
char *cmd = "Ping";
char *names[3]={"Ping","Stop","Go"};

int index = 3;
int i;
char *test;

for (i = 0; i < 44; i++)
{
    test = names[i];
    if (!strcmp(cmd,test))
    {
        index = i;
    }
}
printf("%s is index of %d\n",cmd,index);}

最佳答案

为什么要循环44次我不明白。但是当我在循环中将 44 更改为 3 时,它就起作用了。

for (i = 0; i < 3; i++)

虽然取决于您的编译器,但在 44 个迭代窗口的情况下,我会收到消息应用程序没有响应。

关于c - 为什么使用 strcmp 会出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37998031/

相关文章:

c - 从 main 返回零是必要的吗?从 main 返回的值有什么用?

c - 如何安全地执行c代码

c - WHILE 循环中的段错误

javascript - 为什么我的 Node.js 得到 "program terminated"而没有错误

c - 如何在C程序中检查字符串末尾是否有/字符

C编程gdb报错信息

c/ncurses - 在不同的程序部分使用 getch

c++ - glGenTextures 段错误?

c - 如何检查字符串是否在文件中

c - 在 C 中使用 fgets 和 strcmp