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

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
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型