2012-03-14 103 views
1
memset(outsideWallHeightMap, 0, sizeof(outsideWallHeightMap[0][0]) * CHUNK_SIZE_MULT * ITEM_CHUNK_SIZE_MULT); 


quint8 outsideWallHeightMap[INSIDE_ITEM_CHUNK_SIZE_MULT][CHUNK_SIZE_MULT]; 

#define ITEM_MAP_SIZE 128 
#define CHUNK_SIZE 8 
#define CHUNK_SIZE_MULT (CHUNK_SIZE*CHUNK_SIZE) 

#define INSIDE_ITEM_CHUNK_SIZE (INSIDE_ITEM_MAP_SIZE/CHUNK_SIZE) 

#define INSIDE_ITEM_CHUNK_SIZE_MULT (INSIDE_ITEM_CHUNK_SIZE*INSIDE_ITEM_CHUNK_SIZE) 

我不知道爲什麼這完全破壞了我的記憶!我之前有quint8麻煩,我希望這不是..Memset內存溢出

任何見識將是偉大的!

+0

INSIDE_ITEM_CHUNK_SI ZE_MULT不會顯示爲您的示例代碼中已定義 – SirDarius 2012-03-14 15:31:52

+0

已更新。我把所有的quint8都改成了quint16,也沒有改變。 – RobotRock 2012-03-14 15:35:58

+0

明白了,我換了內外!太愚蠢了......經過修訂後,一定會搞砸的。 – RobotRock 2012-03-14 15:37:36

回答

3

它不應該是

memset(outsideWallHeightMap, 0, sizeof(outsideWallHeightMap[0][0]) * CHUNK_SIZE_MULT *INSIDE_ITEM_CHUNK_SIZE_MULT));

或更容易

memset(outsideWallHeightMap, 0, sizeof(outsideWallHeightMap)); 
+0

+1對於後面的建議。 – 2012-03-14 15:52:24

0

也可初始化一切0這樣:

quint8 outsideWallHeightMap[INSIDE_ITEM_CHUNK_SIZE_MULT][CHUNK_SIZE_MULT] = {{0}};