【发布时间】:2014-10-20 10:09:42
【问题描述】:
我正在准备考试,这是我的模拟考试。问题是“以下代码片段会导致哪种类型的错误?”
我很确定不会有错误,但我也无法让它在 VS13 中编译,我得到了错误:
运行时检查失败 #2 - 变量 'foo' 周围的堆栈已损坏。
const int MAX = 500;
int main(void)
{
int foo[MAX];
for (int i = 0; i <= MAX; i++)
{
foo[i] = i * 2;
cout << foo[i] << endl;
}
cout << "Press any key to exit." << endl;
cin.ignore(2);
return 0;
}
【问题讨论】:
-
你引入了未定义的行为,因为你访问越界(即你访问
foo[500])。
标签: c++