C语言中关于用malloc和free开辟释放内存的问题0
holywoo2013.04.11浏览183次分享举报
//拜托各位高手一下,耐心帮小弟看一下这段程序到底哪里出错?分配内存是像下面这样的:
Tile** Map=(Tile**)malloc(MapSize.y*sizeof(Tile*));
BYTE** Select=(BYTE**)malloc(MapSize.y*sizeof(BYTE*));
for (int x=0;x
{Map[x]=(Tile*)malloc(MapSize.y*sizeof(Tile));
for (int y=0;y
{Map[x][y].Data=(BYTE*)malloc(TileDataSize*sizeof(BYTE));
for (int i=0;i
Map[x][y].List=NULL;}
}
for (int x=0;x
{Select[x]=(BYTE*)malloc(MapSize.y*sizeof(BYTE));
for (int y=0;y
}
//其中Tile是自定义结构,里面有2个元素,即:BYTE *Data,int *List;
//释放内在时程序如下:
for (int x=0;x
{for (int y=0;y
{free(Map[x][y].Data);}
free(Map[x]);}
free(Map);
for (int x=0;x
free(Select); //程序在执行到释放的时候提示:"0x7c9319eb"指令引用的"0x00baf082"内存。该内存不能为"written"。如果只释放Map或Select中其中的一个,则不会提示出错。拜托各位大虾了,到底错在哪里,解说一下。