使用free()后处理指针的推荐方法是什么?

时间:2016-10-22 13:45:31

标签: c pointers free

编辑:这不重复。 '重复'帖子是关于将free'd内存设置为零,这个只是关于变量发生的事情!请在标记之前阅读这些帖子,或至少显示这是重复的内容。

给出类似

的结构
typedef struct simple {
    int variable;
} Simple;

我通常使用函数

删除这样的结构
void delete_simple(Simple *simple) {
    if (simple) {
        free(simple);
    }    
}

并像

一样使用它
delete_simple(mySimple)

但我最近认为指向mySimple的指针仍然是非空的,所以我认为这可能是一种更好的方法:

Simple *destroy_simple(Simple *simple) {
    if (simple) {
        free(simple);
    }
    return 0;
}

并像

一样使用它
mySimple = delete_simple(mySimple)

这是更好还是更差的方式?

0 个答案:

没有答案