[833] Re:マスタングさんへ
投稿者:マスタング
2007/02/20 02:13:25
すいません。見落としてました。
free(start)はエラーになったということで、
startは、staをさしている訳で、エラーの原因はstaは
動的に確保されたオブジェクトではないからです。
774RRさんがおっしゃっていたようにstaは番兵ですね。
ですので、以下が正解です。
void free_list(list *start) {
list *curr, *temp;
for (curr = start->next; curr != NULL;) {
temp = curr->next;
free(curr);
curr = temp;
}
}
これで、以下のように呼び出せます。
free_list(start);
先ほどの例だと、以下のように呼び出さないといけません。
free_list(start->next);
もしくは、
free_list(sta.next);