C ++访问冲突读取位置0xE3A26369

问题描述

当我看到提示访问冲突读取位置0xE3A26369的提示时,我正在尝试创建一个简单的2D并输出数组。我不知道为什么会这样,因为我以前做过,但是从来没有给我这个问题。

{
    string Board[6][6] = { "test","test","test" };

    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            cout << Board[i][j] << endl; //this line 

        }
        cout << endl;
    }

    


    system("pause");
    return 0;

}

有人可以向我解释这里发生了什么吗?

解决方法

由于Board仅为6x6,因此您试图访问超出范围的数组索引(两个方向的索引6到9)。这会给您带来访问冲突,因为内存超出了程序范围,并且不允许程序访问它。

要解决此问题,请仅在0到5(vectors,因为它们具有内置的size函数,您可以将其用作边界(每个方向的v.size()v[0].size)。>

此外,您只用5x5的值填充了Board,而不是6x6的填充,这可能会给您带来您不想要的行为(尽管可能不是您现在看到的错误)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...