私はいくつかのポインタ/リンクリストの問題に取り組んでいます。問題の1つは、リスト内のすべてのノードを削除し、ヘッドをNULLにポイントすることです。
私の解決策は与えられた答えとは異なります。私はこれに慣れていないので、私のものが機能しないかどうか、そしてなぜ機能しないのかを理解するのに苦労しています。私が抱えている主な問題は、結果が何であるかを理解しようとしていることです。その後、別のポインティを共有できるfree(*headRef);
かどうかです。*headRef
私の考えは次のとおりです。compliment
次のノードを*headRef
指しているので、最初のノード(または、より一般的には、1つの褒め言葉が指している前のノード)を指しているノードを解放できます。次に、ポイント*headRef
しcompliment
てプロセスを続行できます。
これが私のコードです:
void DeleteList(struct node** headRef){
struct node* compliment = *headRef;
while (compliment != NULL){
compliment = compliment->next;
free(*headRef);
*headRef = compliment;
}
*headRef = NULL;
}
->next
各ノードがintとポインターの2つの属性を持っていると仮定します。