>>26-28のままで基本的にはいい。
エラーは一番最後のfree(&list);のせい。
listはcallocで割り当てられてないのでfreeしちゃだめ。
AllocNodeで割り当てた分についてはPrintPersonみたいに一つづつfreeしないとだめ。