我试图查看用户是否输入了“h”以便我可以运行另一个函数,但由于某种原因,当我运行程序时,它会显示分段错误。任何帮助,将不胜感激。
char checkh[] = "h";
char *checkInput;
printf("Enter input:");
scanf("%s", checkInput);
if(strcmp(checkInput, checkh) == 0){
helpMsg();
}
我试图查看用户是否输入了“h”以便我可以运行另一个函数,但由于某种原因,当我运行程序时,它会显示分段错误。任何帮助,将不胜感激。
char checkh[] = "h";
char *checkInput;
printf("Enter input:");
scanf("%s", checkInput);
if(strcmp(checkInput, checkh) == 0){
helpMsg();
}
您可以通过以下方式使用简单的方法:
char choice;
scanf("%c",&choice);
if(choice=='h' || choice=='H')
{
help();
}
这就是评论都在谈论的,我相信。您必须先分配内存,然后才能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