2012-02-16 46 views
0

我有一個窗口的OpenGL appcilation,我在那裏用了多陣列,當我嘗試關閉它,它提供了: 「Windows已經引發了APP.EXE一個brakepoint。 這可能是由於堆的腐敗......」C++多陣列 - Windows已經引發了斷點

我有這樣一個標題:

class MyClass 
{ 
    private: 
     static const int DATA_SIZE = 8; 
     double terrain[DATA_SIZE][DATA_SIZE] 
    ... 
} 

在我的應用我給的值給每個‘edgepoint’是這樣的:

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

如果我註釋掉最後一行(地形[DATA_SIZE] [0] = 5),那麼就沒有警告信息,所以這個問題是該行,但我不知道是什麼,它應該工作。我希望有一個人可以幫助我。我使用Visual Studio 2010 Ultimate。

+0

如果希望每個edgepoint(而不是每個角點),您需要填寫您的數組的多個元素(所有的[0] [0 .. DATA_SIZE-1],所有[DATA_SIZE-1] [0..DATA_SIZE-1]等) – 2012-02-16 11:13:28

+0

我填的是別人後,我只是沒有包括這部分,因爲它太長時間,但感謝。 – matthew3r 2012-02-16 11:21:12

回答

3

您四溢的最後一個元素訪問索引:使用

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

哦,我的上帝,什麼是錯誤的,我已經忘了,在我宣佈大小頭。謝謝! – matthew3r 2012-02-16 11:19:16

相關問題