2012-03-14 159 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}};