我应该在哪里调用free()函数? [英] Where should I call Free() function?
本文介绍了我应该在哪里调用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屋!
查看全文