【发布时间】:2017-09-17 21:22:05
【问题描述】:
考虑到这段代码sn-p:
#include <stdio.h>
int main()
{
char *s;
gets(s);
printf("%s",s);
return 0;
}
在这种情况下,在stdin 输入一些输入后,我会遇到运行时错误。但是,如果 s 被声明为数组 s[size],则没有问题。但是考虑到gets 原型,char *gets(char *s); 不应该工作吗?
【问题讨论】:
-
你还没有为
s分配任何内存来指向。 -
s = malloc(BUFSIZE); -
1) 您阅读过文档吗? 需要
char *。 2) 永远不要使用gets它已从标准中删除,如果您尝试使用它,每个现代库都会发出警告。