我有一个窗口 opengl appcilation,我在其中使用了一个多数组,当我尝试关闭它时,它给出了: “Windows 已触发 app.exe 中的制动点。 这可能是由于堆损坏...”
我有一个这样的标题:
class MyClass
{
private:
static const int DATA_SIZE = 8;
double terrain[DATA_SIZE][DATA_SIZE]
...
}
在我的应用程序中,我像这样为每个“边缘点”赋值:
terrain[0][0] = 5;
terrain[0][DATA_SIZE] = 5;
terrain[DATA_SIZE][DATA_SIZE] = 5;
terrain[DATA_SIZE][0] = 5;
如果我注释掉最后一行 (terrain[DATA_SIZE][0] = 5;),则没有警告消息,所以问题出在那一行,但我不知道是什么,它应该可以工作。我希望有一个人可以帮助我。我使用 Visual Studio 2010 Ultimate。
最佳答案
你正在溢出最后一个元素访问索引:使用
terrain[0][DATA_SIZE-1] = 5;
terrain[DATA_SIZE-1][DATA_SIZE-1] = 5;
terrain[DATA_SIZE-1][0] = 5;
关于C++ 多数组 - Windows 已触发断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9310192/