C ++ multi array - Windows сработала точка останова - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть окно 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 Ответ

3 голосов
/ 16 февраля 2012

Вы переполняете индекс доступа к последнему элементу: используйте

terrain[0][DATA_SIZE-1] = 5;
terrain[DATA_SIZE-1][DATA_SIZE-1] = 5;
terrain[DATA_SIZE-1][0] = 5;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...