C语言小白问题:自学C语言到if语句,这段程序为什么没有错误但一运行就崩溃

#include <stdio.h>
int main()
{
char* sentence="我叫风筝";
char*reply="Who are you?";
char*replyone="Yeah I Know You!";
printf("请告诉我你的名字:\n");
if(gets(sentence))
{
puts(replyone);
}
else {puts(reply);}
return 0;
}

你把char指针换成数组追问

对不起我是真小白,不太理解,麻烦您费心讲一下这应该怎么换?

追答

#include
int main()
{
char sentence[10]="我叫风筝";
char reply[15]="Who are you?";
char replyone[20]="Yeah I Know You!";
printf("请告诉我你的名字:\n");
if(gets(sentence))
{
puts(replyone);
}
else {puts(reply);}
return 0;
}

上面不要char*p,然后gets(p),这是错误的,因为p没有指向有效的内存,它可能指向任何非法地址

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-26
VS2015 中试,没问题

~~~~~~~~~~~追问

我用的是6.0。。。

相似回答