【发布时间】:2015-06-11 05:20:00
【问题描述】:
这是我的代码:
#include <iostream>
using namespace std;
int main(){
char inp[5], out[4];
cin >> inp >> out;
cout << inp << endl;
cout << out << endl;
system("pause");
return 0;
}
当我输入时:
12345 6789
它给了我:
6789
为什么我没有保存 5 个字的 char 数组 'inp' 却什么也没显示?第二个输入看起来很正常。但是,当我设置 out[3] 或 out[5] 时,它似乎可以正常工作?似乎 [5] 后跟 [4] 的两个 char 数组会导致问题...
【问题讨论】:
-
您首先将 11 个字符(包括结尾的
'\0')写入 5 个字符的数组。幸运的是,当时没有发生任何爆炸。然后将另外 11 个字符写入 4 字符数组。在out的空间用完后,数据溢出到inp。修复数组大小,或限制输入的长度。