-1

「first」と呼ばれる最初のノードへのポインタを持つ双方向リンク リストがあるとします。ここで、「最初の」ノードを削除するこの双方向リンク リストの関数を作成したいとします (関数が 2 番目の図で行われたことを実行するとします。つまり、新しいポインター ノードが以前の最初のノードと最初のノードとして宣言されているとします)。 1回繰り返されました)。ここで私の質問は次のとおりです。新しい最初を削除すると、最初の PREV は NULL を指すようになりますか? そうでない場合、それは何を指していますか? 基本的に、first->PREV = NULL を明示的に定義する必要があるかどうか、または新しい最初のものを削除することで同じタスクが達成されるかどうかを知りたいです。

注: 明確でない場合、上矢印は PREV、下矢印は NEXT です。

ここに画像の説明を入力

4

2 に答える 2

2

明示的に行う必要があります。オブジェクトの割り当てを解除しても、そのオブジェクトを指しているポインターは null にリセットされません。それらはぶら下がったままです。

于 2012-12-01T12:21:02.160 に答える
2

delete を呼び出すと、そのメモリが解放されるだけです。ポインタがメモリのその領域を指している場合、その値は変更されません。
したがって、ノードを削除する関数では、削除された領域へのポインターを NULL (または nullptr) に設定する必要もあります。

于 2012-12-01T12:24:07.977 に答える