简单的循环完成和运行失败

时间:2016-11-01 18:21:36

标签: c++ loops

由于某些未知原因,这个简单的代码运行,执行它预期要做的事情,然后崩溃运行。我正在使用NetBeans IDE,它之前与我的数组重叠(往往是错误的),所以我想知道是否有人得到相同的错误 - 这意味着我当然必须改变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;
};

1 个答案:

答案 0 :(得分:3)

这里你要删除一个包含4个索引的数组。在c / c ++中,索引号从0开始。 在您的代码中,您说:

int first[4][4]; 

表示索引为:0 1 2 3.Array length或total index为4。 但是在for循环中你说的是

for (int a = 0; a < 5; a++) {
....
}

所以你试图分别访问索引号0 1 2 3 4.但是请记住你没有索引号4.这就是为什么它应该给出数组索引超出范围的错误。

同样在main函数结束时,您使用的是分号。删除

main () {
....
};

希望这可以解决问题。从下一次请尝试提供有关您的IDE提供给您的错误的详细信息,因为对于给予回答的人来说会更容易。