晚上所有,
在 C 编程语言中,我弄乱了指针,并且不断地分割(核心转储)错误。显然我的一些代码搞砸了。这是我正在做的一些示例代码(但不是我的实际代码)。请注意,我在其中一个函数中返回了一个本地指针。
struct foo* new_foo ( )
{
struct foo myfoo;
return &myfoo;
}
void free_foo ( struct foo* myfoo )
{
// pnt_var is being used on another part
// of the program so we can't free it yet
foo->ptr_var = NULL;
free(foo);
}
所以我的问题是,我如何通过函数正确释放一段内存,而不释放该结构的分配内存(在程序的其他部分仍然处于活动状态)。如果有帮助的话,我正在实施列表。