C的一段语言

来源:百度知道 编辑:UC知道 时间:2024/06/27 19:03:44
#include<stdio.h>
int main(void){
char s[20],*p;
gets(s);
puts(s);
gets(p);
puts(p);
}
我执行到第2个gets的时候会出错, 有人能解释一下吗, 是不是编译器的问题?

是你自己的问题,p只是一个指针,没有分配空间,也没有赋值,它可能指向有用的信息,gets()后就被覆盖掉了,效果和病毒差不多。

添加一句 p = s;就行了

一楼说得对