我有一个opengl窗口控件,在这里我使用了一个多数组,当我尝试关闭它时,它给出了:
“ 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。

最佳答案

您正在溢出最后一个元素访问索引:use

terrain[0][DATA_SIZE-1] = 5;
terrain[DATA_SIZE-1][DATA_SIZE-1] = 5;
terrain[DATA_SIZE-1][0] = 5;

10-07 17:09