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

标签 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。

最佳答案

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

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/

相关文章:

C++,ShellExecute a URL with the hash sign (#)

visual-studio-2008 - Visual Studio Intellisense 不是最新的一类

visual-c++ - JPEG 提取 DCT 表

java - (Android)通过intent传递多维数组

c++ - 内存映射文件 C++

c++ - 在cuda中使用静态成员函数模板结构的替代方法?

C# Linq : Return a multidimensional array from a list of Object

java - java中如何使用多维数组获取每一行的总和?

c++ - 简单虚拟机安全、高效的底层数据类型

c++ - 使用相同的函数但不同的重载来转换 std::tr1::shared_ptr<T> 和 std::shared_ptr<T>