ベースケースでも再帰関数を呼び出すときの無限ループ

Zeyad Ibrahim

このコードセグメントを理解できません。私は私が知っていると思うことは、私が通過する時ということで"abc"、その後xの文字列の最初の要素へのポインタになり、これは正しいでしょうか?そして、なぜそれは私に無限ループを与えるのですか?

これが私のコードです:

void foo1(char* x)
{
    if (!x)
        return;
    printf("%c ",*x);
    foo1(++x);
}

int main()
{
    foo1("abc");
    return 0;
}
ショーン

ポインタがnull。になると、反復を停止します実際に必要なのは、\0文字(つまり、文字列の終わり)に到達したときに反復を停止することです

int main()
{
  foo1("abc");

  return 0;
}

void foo1(char* x)
{
  if (*x == 0)
      return;

  printf("%c ",*x);
  foo1(++x);
}

ポイントされたアイテムではなく、ポインタ値を反復処理しているため、基本的には、文字列の場所から開始して、プロセスのアドレス空間を反復処理し始めます。セグメンテーション違反の原因となる無効なアドレスに到達する前に、スタックスペースが不足する可能性があります。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

ng-repeat / ng-classが$ httpを呼び出す関数を呼び出すときの無限ループ

分類Dev

関数を呼び出すときのAngularJSの無限ループの呼び出し?

分類Dev

ポストでの関数呼び出しを伴う無限ループ

分類Dev

再帰関数は、ベースケースがあった後でも無限に実行されます

分類Dev

無限ループと無限再帰呼び出しの違いは何ですか?

分類Dev

再帰ループに入ることなく、親クラスの関数を適切に呼び出す

分類Dev

プロローグのベースケースを再帰呼び出しに置き換える

分類Dev

再帰関数が無限ループに到達します。戻りステートメントの評価後も、制御は関数呼び出しに戻ります

分類Dev

関数を呼び出す角度の無限ループ

分類Dev

複数の関数を呼び出すときの再帰エラー

分類Dev

React:useEffectでコンテキスト関数を呼び出すときに無限ループを防止します

分類Dev

Javascriptで無限ループを生成する再帰関数

分類Dev

変数を関数呼び出しのプレースホルダーとして使用できますか?

分類Dev

Pythonの無限ループでX回ごとに1回だけ関数を呼び出す方法は?

分類Dev

forループ内で再帰関数を適切に呼び出す方法は?

分類Dev

letを使用したスキームで関数を再帰的に呼び出す

分類Dev

JavaScriptで無限ループや再帰呼び出しが発生したときにJavaScriptをデバッグする方法は?

分類Dev

ServiceNow:コールバック関数でonSubmitを呼び出すと、無限ループが発生します

分類Dev

スタックをオーバーフローさせることなく、非同期関数を再帰的に呼び出すことはできますか?

分類Dev

部分中のマージソートに関する無限ループの問題は、mergeSortを再帰的に呼び出します

分類Dev

heightForRowAtIndexPathで関数を呼び出している間の無限ループ

分類Dev

他のスコープ関数を呼び出すjavascript関数を「再帰的に」文字列化するにはどうすればよいですか?

分類Dev

C ++:メンバー関数を呼び出すときのポインターベクトル内の抽象クラスの無効な使用

分類Dev

bash関数がローカル変数を使用せずに自分自身を再帰的に呼び出すことができるのはなぜですか?

分類Dev

Pathosマルチプロセッシングは、クラス内のパッケージと関数を呼び出すことはできません

分類Dev

Python3のifステートメント条件で再帰関数fomを呼び出す

分類Dev

再帰ループの呼び出しスタックを出力します

分類Dev

無限ループと無限再帰。両方とも未定義ですか?

分類Dev

Angular9のサービスでHTTPPOSTを再帰的に呼び出すことはできますか?

Related 関連記事

  1. 1

    ng-repeat / ng-classが$ httpを呼び出す関数を呼び出すときの無限ループ

  2. 2

    関数を呼び出すときのAngularJSの無限ループの呼び出し?

  3. 3

    ポストでの関数呼び出しを伴う無限ループ

  4. 4

    再帰関数は、ベースケースがあった後でも無限に実行されます

  5. 5

    無限ループと無限再帰呼び出しの違いは何ですか?

  6. 6

    再帰ループに入ることなく、親クラスの関数を適切に呼び出す

  7. 7

    プロローグのベースケースを再帰呼び出しに置き換える

  8. 8

    再帰関数が無限ループに到達します。戻りステートメントの評価後も、制御は関数呼び出しに戻ります

  9. 9

    関数を呼び出す角度の無限ループ

  10. 10

    複数の関数を呼び出すときの再帰エラー

  11. 11

    React:useEffectでコンテキスト関数を呼び出すときに無限ループを防止します

  12. 12

    Javascriptで無限ループを生成する再帰関数

  13. 13

    変数を関数呼び出しのプレースホルダーとして使用できますか?

  14. 14

    Pythonの無限ループでX回ごとに1回だけ関数を呼び出す方法は?

  15. 15

    forループ内で再帰関数を適切に呼び出す方法は?

  16. 16

    letを使用したスキームで関数を再帰的に呼び出す

  17. 17

    JavaScriptで無限ループや再帰呼び出しが発生したときにJavaScriptをデバッグする方法は?

  18. 18

    ServiceNow:コールバック関数でonSubmitを呼び出すと、無限ループが発生します

  19. 19

    スタックをオーバーフローさせることなく、非同期関数を再帰的に呼び出すことはできますか?

  20. 20

    部分中のマージソートに関する無限ループの問題は、mergeSortを再帰的に呼び出します

  21. 21

    heightForRowAtIndexPathで関数を呼び出している間の無限ループ

  22. 22

    他のスコープ関数を呼び出すjavascript関数を「再帰的に」文字列化するにはどうすればよいですか?

  23. 23

    C ++:メンバー関数を呼び出すときのポインターベクトル内の抽象クラスの無効な使用

  24. 24

    bash関数がローカル変数を使用せずに自分自身を再帰的に呼び出すことができるのはなぜですか?

  25. 25

    Pathosマルチプロセッシングは、クラス内のパッケージと関数を呼び出すことはできません

  26. 26

    Python3のifステートメント条件で再帰関数fomを呼び出す

  27. 27

    再帰ループの呼び出しスタックを出力します

  28. 28

    無限ループと無限再帰。両方とも未定義ですか?

  29. 29

    Angular9のサービスでHTTPPOSTを再帰的に呼び出すことはできますか?

ホットタグ

アーカイブ