我应该在哪里调用free()函数? [英] Where should I call Free() function?

查看:213
本文介绍了我应该在哪里调用free()函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

例如:



在交流转换器:

For example:


In A.c :

Head init(){
Head treeHead;
treeHead = malloc(sizeof (struct TreeHead));
treeHead->Root = malloc(sizeof (struct TreeNode));
return treeHead;}



在B.c:


In B.c :

Head treeHead;
treeHead = init();



我应该在init()方法在交流转换器或B.c拨打免费?


Should I call free in init() method in A.c or in B.c ?

推荐答案

我会在交流转换器定义一个函数:

I would define a function in A.c:

void freeHead(Head head){
   free(head->Root);
   free(head);
   return;
}

然后在B.c调用它在适当的地方:

Then call it in appropriate places in B.c:

freeHead(head);

这篇关于我应该在哪里调用free()函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆