问题描述
- c语言数组,字符串,越界
-
#include
int main(){
char a[4];
gets(a);
puts(a);
return 0;}
为什么我输入超过4个字符,也能全部输出????????
解决方案
应该是地址越界。 但是超出去的地址没有被改写吧。
试试:
#include
int main(){
char a[4];
char b[100] = {0};
gets(a);
puts(a);
puts(b);
return 0;
}
解决方案二:
字符串输入越界问题
建议使用fgets(http://baike.baidu.com/view/656654.htm)
gets(a) 改成fgets(a, 4, stdin)
时间: 2024-12-25 09:37:25