简单的for循环完成并失败运行
simple for loop finishes and fails the run
由于某种未知的原因,这段简单的代码运行了,做了预期的事情,然后崩溃了。我正在使用NetBeans IDE,它在之前重叠了我的数组(往往有bug),所以我想知道是否有人得到同样的错误-这意味着我肯定要改变IDE环境。
#include <iostream>
using namespace std;
int main ()
{
int first[4][4];
for (int a = 0; a < 5; a++)
{
for (int b = 0; b < 5;b++)
{
cout << a << " " << b << " ";
if (first [a][b] != 0)
{
first[a][b] = 0;
}
cout << first[a][b] << " ";
}
cout << endl << endl << endl;
}
return 0;
};
在这里你声明了一个有4个索引的数组。在c/c++中,索引号从0开始。在你的代码中,你说:
int first[4][4];
表示索引为:0 1 2 3。数组长度或总索引为4。但是在for循环中你说的是
for (int a = 0; a < 5; a++) {
....
}
,所以你试图访问索引号0 1 2 3 4分别。但是记住你没有索引4。这就是为什么它应该给出数组索引超出边界错误。
同样在main函数的末尾使用分号。删除
main () {
....
};
希望这能解决问题。从下次开始,请尽量提供有关您的IDE给您的错误的详细信息,因为它将更容易给答案的人。
相关文章:
- Active Directory:从网络服务帐户下运行的Windows服务调用ADsOpenObject时失败
- 换位表导致测试失败(但在游戏中运行良好)
- 为什么 KMS drmModeSetCrtc() 在 X11 会话中运行时会失败并被拒绝权限?
- 运行时检查失败 #2 变量"A"周围的堆栈已损坏
- 如何让谷歌测试正常运行。测试总是失败。(它不会编译)
- 运行时检查失败 #0 用于运行时重新编译
- 如果所有部分都失败,Catch2 将再次运行测试
- 为什么我的Qt程序在断言失败后继续运行?
- 运行时检查失败 #2 - 变量"e"周围的堆栈已损坏。发生
- 运行时检查失败 #2 MSVC 仅使用 utf8proc 进行调试
- std::copy 导致运行时检查失败 #2
- 运行时检查失败 #2 - 变量周围的堆栈'...'已损坏
- 对c++中使用的keras.h5模型到.pb模型进行了微调,给出了运行模型失败的错误
- Opendir() 在带有空格的名称上失败,在 Linux 上运行
- 运行时检查失败 #2 - 变量"l1"周围的堆栈已损坏
- C++:此代码可以编译,但引发运行时检查失败 #2 - 围绕变量周围的堆栈'num'已损坏。发生
- 运行时检查失败 - 变量周围的堆栈已损坏
- arm_data在第二次运行我的程序时中止失败,然后
- C++,弹出调试断言失败窗口,我得到矢量迭代器不兼容的错误运行时
- 简单的for循环完成并失败运行