グローバル変数なしでリンクリストを再帰的に反転します

彼らは持っている

2番目のパラメーターを渡すとNode** fheadセグメンテーション違反が発生するのはなぜですか?値と、次を指す次のポインタNodeがありintますNode

これが私のコードです:

void reverse(Node* head, Node** fhead) {
    if (!head->next)
    {
        fhead = &head;
        return;
    }

    reverse(head->next, fhead);
    head->next->next = head;
    head->next = 0;
}

int main() 
{
   Node a = {1, 0};
   Node b = {2, &a};
   Node c = {3, &b};

   Node** fhead;
   reverse(&c, fhead);
}
molbdnilo

非常に小さいが深刻な問題が2つあります。

最初、

fhead = &head;

変更が関数の外部に表示されないように、パラメーターに値を割り当てます。

これはまったく同じように機能します

void f(int x) 
{
    x = 0;
}

たとえば、へのポインタを渡すときに行うのと同じようにint

void f(int* x) 
{
    *x = 0;
}

ポインタが指すオブジェクトに割り当てる必要があります。

*fhead = head;

次に、変数への有効なポインタを渡す必要があります。

Node* fhead = 0;
reverse(&c, &fhead);

(初期化は厳密には必要ありませんが、変数を初期化することをお勧めします。)

これら2つの変更により、コードは期待どおりに機能します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

一時変数を使用して、Javaでリンクリストを再帰的に反転します

分類Dev

リンクリストを再帰的に反転します

分類Dev

リスト変数をグローバル環境に再帰的に送信します

分類Dev

リンクリストをCで再帰的に反転する

分類Dev

リンクリストを再帰的に反転する機能

分類Dev

リンクリストを再帰的に反転する

分類Dev

os.walkなしでPythonのディレクトリ構造を再帰的にトラバースします

分類Dev

グローバル変数?複数のスクリプト間で変数を共有しますか?

分類Dev

Windowsバッチファイルの再帰ループで変数がインクリメントしない

分類Dev

反応、インクリメントグローバル変数が期待どおりに機能しない

分類Dev

各ループの再帰的なjQueryをVBAスクリプト制御用のJavaScriptに変換します

分類Dev

変数をサーバー側に渡し、ポストバックやリロードなしでクライアント側に戻します

分類Dev

リンクリストを再帰的に反転

分類Dev

ファクトリーJS変数をAngularJSでグローバルに利用できるようにします

分類Dev

プロパティのリストを再帰的にフィルタリングしてマップします

分類Dev

JavaScriptで、グローバル変数を使用せずに、再帰呼び出しで変数をリセットせずに、変数を使用して値を追跡するにはどうすればよいですか?

分類Dev

Javaクラスのリストを再帰的にトラバースします

分類Dev

再帰によって単一リンクリストを反転する

分類Dev

プログラムでEclipseワークスペース内のすべてのファイルを再帰的にリストします

分類Dev

再帰的な可変個引数テンプレート関数を反復に変換します

分類Dev

Cで、単一のリンクリストに複数のフィールドがあるノードを再帰的に削除します

分類Dev

リンクリストのこの再帰的リバーサーの戻り変数/値について混乱しています

分類Dev

この実装では、再帰が反復よりも速いのはなぜですか?(Pythonはリンクリストを逆にします)

分類Dev

クラスメンバー関数の定義でグローバル変数を使用すると、カプセル化に違反しますか?

分類Dev

再帰を使用してリストの要素を反転する

分類Dev

再帰メモリを効率的かつ高速に実行するときに、グローバル変数を宣言しますか?

分類Dev

再帰関数からグローバル変数を削除します

分類Dev

バイナリファイルのディレクトリで16進シーケンスを再帰的に検索しますか?

分類Dev

グローバル変数を宣言せずに再帰が機能しない

Related 関連記事

  1. 1

    一時変数を使用して、Javaでリンクリストを再帰的に反転します

  2. 2

    リンクリストを再帰的に反転します

  3. 3

    リスト変数をグローバル環境に再帰的に送信します

  4. 4

    リンクリストをCで再帰的に反転する

  5. 5

    リンクリストを再帰的に反転する機能

  6. 6

    リンクリストを再帰的に反転する

  7. 7

    os.walkなしでPythonのディレクトリ構造を再帰的にトラバースします

  8. 8

    グローバル変数?複数のスクリプト間で変数を共有しますか?

  9. 9

    Windowsバッチファイルの再帰ループで変数がインクリメントしない

  10. 10

    反応、インクリメントグローバル変数が期待どおりに機能しない

  11. 11

    各ループの再帰的なjQueryをVBAスクリプト制御用のJavaScriptに変換します

  12. 12

    変数をサーバー側に渡し、ポストバックやリロードなしでクライアント側に戻します

  13. 13

    リンクリストを再帰的に反転

  14. 14

    ファクトリーJS変数をAngularJSでグローバルに利用できるようにします

  15. 15

    プロパティのリストを再帰的にフィルタリングしてマップします

  16. 16

    JavaScriptで、グローバル変数を使用せずに、再帰呼び出しで変数をリセットせずに、変数を使用して値を追跡するにはどうすればよいですか?

  17. 17

    Javaクラスのリストを再帰的にトラバースします

  18. 18

    再帰によって単一リンクリストを反転する

  19. 19

    プログラムでEclipseワークスペース内のすべてのファイルを再帰的にリストします

  20. 20

    再帰的な可変個引数テンプレート関数を反復に変換します

  21. 21

    Cで、単一のリンクリストに複数のフィールドがあるノードを再帰的に削除します

  22. 22

    リンクリストのこの再帰的リバーサーの戻り変数/値について混乱しています

  23. 23

    この実装では、再帰が反復よりも速いのはなぜですか?(Pythonはリンクリストを逆にします)

  24. 24

    クラスメンバー関数の定義でグローバル変数を使用すると、カプセル化に違反しますか?

  25. 25

    再帰を使用してリストの要素を反転する

  26. 26

    再帰メモリを効率的かつ高速に実行するときに、グローバル変数を宣言しますか?

  27. 27

    再帰関数からグローバル変数を削除します

  28. 28

    バイナリファイルのディレクトリで16進シーケンスを再帰的に検索しますか?

  29. 29

    グローバル変数を宣言せずに再帰が機能しない

ホットタグ

アーカイブ