shouhaogood 2017-04-10 02:17 采纳率: 85.7%
浏览 1007

c语言无法完全释放内存问题

定义结构体
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 谢谢

  • 写回答

3条回答 默认 最新

  • threenewbee 2017-04-10 02:14
    关注

    释放内存的意思是标记这些内存为没有被使用,而不是说对释放的内存区域清零。所以你看到这些内存内容没有改变是正常的,不等于没有释放。

    评论

报告相同问题?