C ++多数组--Windows已触发断点

时间:2012-02-16 11:07:25

标签: c++ visual-c++ multidimensional-array

我有一个窗口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。

1 个答案:

答案 0 :(得分:3)

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

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