0
特定のリンクリストから要素を削除する際に問題があります。ここに私が持っているものがあります:リンクリストから要素を削除する
このように書かれたprintList関数は、私にリスト全体を表示し、削除されていないようです。何が間違っているかについてのアイデア?
特定のリンクリストから要素を削除する際に問題があります。ここに私が持っているものがあります:リンクリストから要素を削除する
このように書かれたprintList関数は、私にリスト全体を表示し、削除されていないようです。何が間違っているかについてのアイデア?
まず、削除の要素が見つかりませんでした。見つかった場合、return
ステートメントは関数を終了し、printList(list)
関数は呼び出されません。
秒:return
の代わりにfor
ループを飛び越すには、break
を使用します。
第3:あなたののポインタはlist
に返されます。free
最初の要素です。関数内では、リストは新しい最初の要素に設定されますが、新しいアドレスを返さない場合、リストは解放された要素に過ぎず、次回に要素を呼び出すとセグメント化エラーが発生する可能性があります。
'list = currP-> next;は重要です。なぜなら、* caller *にとって意味がないからです。リストの値、ポインタはまさにそれです。価値*。アドレス(ポインタへのポインタ)でポインタを渡すか、そうでなければ未使用の戻り結果を利用して常にリストの先頭を返してそれを利用する必要があります。 – WhozCraig
Cの基本を理解する前に、リンクリストをCで試してはいけません。 – Stargateur