我试图查看用户是否输入“h”以便我可以运行另一个函数,但由于某种原因,当我运行程序时,它会指出Segmentation Fault。任何帮助,将不胜感激。
char checkh[] = "h";
char *checkInput;
printf("Enter input:");
scanf("%s", checkInput);
if(strcmp(checkInput, checkh) == 0){
helpMsg();
}
答案 0 :(得分:2)
您可以使用简单的方法:
char choice;
scanf("%c",&choice);
if(choice=='h' || choice=='H')
{
help();
}
答案 1 :(得分: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