-1

我试图查看用户是否输入了“h”以便我可以运行另一个函数,但由于某种原因,当我运行程序时,它会显示分段错误。任何帮助,将不胜感激。

char checkh[] = "h";
char *checkInput;
printf("Enter input:");
scanf("%s", checkInput);

    if(strcmp(checkInput, checkh) == 0){
            helpMsg();
    }
4

2 回答 2

2

您可以通过以下方式使用简单的方法:

char choice;
scanf("%c",&choice);
if(choice=='h' || choice=='H')
{
    help();
}
于 2013-10-26T05:50:43.943 回答
1

这就是评论都在谈论的,我相信。您必须先分配内存,然后才能char *var按您的方式使用。

在您现有的代码中,添加指示的行,您将不会遇到 seg 错误。

char checkh[] = "h";
char *checkInput;  
checkInput = malloc(10);//add this line;
printf("Enter input:");
scanf("%s", checkInput);

    if(strcmp(checkInput, checkh) == 0){
            helpMsg();
    }  
//some code  
free(checkInput);//add this line
于 2013-10-26T05:51:38.087 回答