Переполнение памяти Memset - PullRequest
1 голос
/ 14 марта 2012
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, я надеюсь, что это не так ..

Любое понимание было бы здорово!

Ответы [ 2 ]

3 голосов
/ 14 марта 2012

Не должно ли это быть

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

или проще

memset(outsideWallHeightMap, 0, sizeof(outsideWallHeightMap));
0 голосов
/ 14 марта 2012

Вы также можете инициализировать все до 0 следующим образом:

quint8 outsideWallHeightMap[INSIDE_ITEM_CHUNK_SIZE_MULT][CHUNK_SIZE_MULT] = {{0}};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...