我有一个窗口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。
答案 0 :(得分:3)
您正在溢出最后一个元素访问索引:使用
terrain[0][DATA_SIZE-1] = 5;
terrain[DATA_SIZE-1][DATA_SIZE-1] = 5;
terrain[DATA_SIZE-1][0] = 5;