我在编写代码时遇到了一个非常奇怪的问题,这是我的C ++代码:
#include <iostream>
using namespace std;
int main()
{
int qnum;
cin >> qnum;
int series[3];
cin >> series[3];
cout << qnum;
}
例如,如果我为qnum输入2,为系列[3]输入5,则qnum的值将在最后一行代码中被覆盖。仅当系列的输入为3时才会出现此问题。唯一的解决方案for new是为qnum添加“static”属性,如下所示:
#include <iostream>
using namespace std;
int main()
{
static int qnum;
cin >> qnum;
int series[3];
cin >> series[3];
cout << qnum;
}
有什么想法吗?
答案 0 :(得分:11)
没有series[3]
。只有series[0]
,series[1]
和series[2]
(数组从0到N-1)。
您正在注销数组的末尾,这会导致未定义的行为。