[英]very strange C++ error
我在编写代码时遇到了一个非常奇怪的问题,这是我的C ++代码:
#include <iostream>
using namespace std;
int main()
{
int qnum;
cin >> qnum;
int series[3];
cin >> series[3];
cout << qnum;
}
例如,如果我为qnum输入2,为series [3]输入5,则qnum的值将在代码的最后一行中被覆盖。仅当series输入为3时,才会出现此问题。new的唯一解决方案是向qnum添加“ static”属性,如下所示:
#include <iostream>
using namespace std;
int main()
{
static int qnum;
cin >> qnum;
int series[3];
cin >> series[3];
cout << qnum;
}
有任何想法吗?
没有series[3]
。 只有series[0]
, series[1]
和series[2]
(数组从0到N-1)。
您正在注销数组的末尾,这将导致未定义的行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.