定义结构体
typedef{ char *aa; int num } TEST;
分配内存:
TEST *qtest;
qtest=(TEST *)malloc(10*sizeof(TEST));
结构体中变量aa分配内存
for(i=0;i<10;i++)
{qtest[i].aa=malloc(100); strcpy(qtest[i].aa,"jdjdjdjd");}
现在释放内存
free(qtest);
结果通过printf实验内存释放情况:
for(i=0;i<10;i++)
{printf ("qtest=%s",qtest[i].aa}
结果:
只有qtest[0]被释放了,qtest[1]-qtest[9]内存中的内容没发生改变。
请问如何彻底的释放全部qtest 谢谢
c语言无法完全释放内存问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- threenewbee 2017-04-10 02:14关注
释放内存的意思是标记这些内存为没有被使用,而不是说对释放的内存区域清零。所以你看到这些内存内容没有改变是正常的,不等于没有释放。
解决 无用评论 打赏 举报