【发布时间】:2015-09-05 06:12:17
【问题描述】:
如果我有下一个功能
Stack *construct_stack(void) {
Stack *instance = (Stack *) malloc(sizeof(Stack));
// Stuff...
return instance;
}
这是一种“构造函数”。但我一直遇到“析构函数”的问题。
如果我这样做,我会得到一个错误。
void destruct_stack(Stack **st) {
// Stuff...
free(st);
}
有什么想法吗?
【问题讨论】:
-
为什么将指针传递给指针?只需传递一个指针并释放它。
-
free(*st);*st=NULL; -
'因为我的代码看起来像这样:
Stack *s = construct_stack(); // Stuff... destruct_stack(&s);
标签: c pointers memory-management memory-leaks