结构体内存释放问题

zxhong 2006-07-06 10:54:49
在释放结构体指针的同时,结构体内的指针变量需不需要释放?

struct test{
char *aa;
};

struct test *test1;

test1 = (struct test *)malloc(15*sizeof(test));
test1->aa = (char *)malloc(100*sizeof(char));

free(test1);
free(test1->aa); //需要否?
...全文
249 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pappGG 2006-07-06
  • 打赏
  • 举报
回复
必须要
实际使用中,你可以写个类似这样的函数
void freeNode(test * node)
{
free(node->aa);
free(node);
}
zez 2006-07-06
  • 打赏
  • 举报
回复
不是认为要

是必须要!!!!

内存泄漏就是这么来的!!!
tailzhou 2006-07-06
  • 打赏
  • 举报
回复
free(test1->aa); //我认为要,并且 要在free(test1)的前面
free(test1);
yingge 2006-07-06
  • 打赏
  • 举报
回复
需要,不过顺序应该这样
free(test1->aa);
free(test1);

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧