2 webboluo webboluo 于 2013.11.10 20:52 提问

c语言数组,字符串,越界

#include
int main(){
char a[4];
gets(a);
puts(a);
return 0;

}
为什么我输入超过4个字符,也能全部输出????????

2个回答

u011912076
u011912076   2013.11.10 21:02

应该是地址越界。 但是超出去的地址没有被改写吧。
试试:
#include
int main(){
char a[4];
char b[100] = {0};
gets(a);
puts(a);
puts(b);
return 0;

}

liuyy2007
liuyy2007   2013.11.26 12:21

字符串输入越界问题
建议使用fgets(http://baike.baidu.com/view/656654.htm

gets(a) 改成fgets(a, 4, stdin)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!