私は C を学ぼうとしていますが、多くの人と同じように、ポインターに少し行き詰まっています。とにかく、リンクされたリストを破棄する再帰関数を作成しましたが、デバッグしたように、関数から戻ったときに、リストの先頭が本来あるべきように null ではないため、ポインタに関する基本的な誤解であると推測しています. 関数は次のとおりです。
void destroy(struct node *n) {
if (!n) return;
destroy(n->next);
free(n);
n = NULL;
}