綾小路龍之介の素人思考

安全なfree

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

のようにマクロを定義しておくといいかも。

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2007-07-25T17:56:54+09:00
  2. Modified: 2007-07-25T03:56:46+09:00
  3. Generated: 2017-10-16T23:09:17+09:00