内存集内存溢出

Memset memory overflow

本文关键字:内存 溢出      更新时间:2023-10-16
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(outsideWallHeightMap, 0, sizeof(outsideWallHeightMap[0][0]) * CHUNK_SIZE_MULT * INSIDE_ITEM_CHUNK_SIZE_MULT ));

或更容易

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

您也可以通过这种方式将所有内容初始化为 0:

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