c语言map函数内存释放流程,C语言中关于用malloc和free开辟释放内存的问题

C语言中关于用malloc和free开辟释放内存的问题0

02ae427d08e371d7e90d5b995e828d6d.pngholywoo2013.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中其中的一个,则不会提示出错。拜托各位大虾了,到底错在哪里,解说一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值