微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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的填充,这可能会给您带来您不想要的行为(尽管可能不是您现在看到的错误)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。