2つの質問:
リストの前にノードを追加する関数を書いています。現在、私はこのようにしています:
void addList( NODE_TYPE** head, NODE_TYPE** d_name ) { (*d_name)->next = *head; *head = *d_name; }
そして内部
main()
では、私はそれを次のように呼んでいます:addList( &head, &node_3);
私の質問は、次のような関数プロトタイプを使用してこれを行う別の方法はありますか?
void addList( NODE *head, NODE *node);
?
これはクラスの問題でした。関数を呼び出すとアドレスの値のみが渡され、呼び出し元はヘッドに加えられた変更を確認できず、ノード。
deleteList関数が正しいかどうかわかりません。温度が頭(アンカー)が指す場所を指すようにしたいと思います。次に、next_freeは、ヘッドにリンクされている2番目のノードを指します。次に、最初のノードを解放します。次に、すべてが解放されるまで、2番目、3番目などを繰り返します。
void deleteList( NODE_TYPE** head ) { NODE_TYPE* temp = *head; NODE_TYPE* next_free = NULL; while ( temp->next != NULL ) { next_free = temp->next; free( temp ); temp = next_free; } *head = NULL; }
これは正しいアプローチですか?