如何解决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 举报,一经查实,本站将立刻删除。