>>240
if(hoge){
 free(hoge);
 hoge = NULL;
}
は、
free(hoge);
hoge = NULL;
で十分。

ところで、>>244の
>今度は free したポインタを参照するバグに出くわすと思うぞ
って、どういうこと?