free(hoge); hoge=NULL;
このようにしておくといいらしい。freeの後にfreeした領域hogeにNULLポインタを入れている。このようにすることで、もしこの後にfree(hoge)してもfree(NULL)であり、この場合のfreは何もしないことが保障されているから安全ということらしい。面倒な場合は
#define safe_free(hoge) free(hoge);hoge=NULL
のようにマクロを定義しておくといいかも。
mallocした領域をfreeする場合、2度free(double free)してしまうと危険である。ということはよく言われているわけで。
free(hoge); hoge=NULL;
このようにしておくといいらしい。freeの後にfreeした領域hogeにNULLポインタを入れている。このようにすることで、もしこの後にfree(hoge)してもfree(NULL)であり、この場合のfreは何もしないことが保障されているから安全ということらしい。面倒な場合は
#define safe_free(hoge) free(hoge);hoge=NULL
のようにマクロを定義しておくといいかも。