Code Fix

上級Segmentation fault(再帰関数の終了条件忘れによるスタックオーバーフロー) › パターン1

Segmentation fault(再帰関数の終了条件忘れによるスタックオーバーフロー)

再帰関数に正しい終了条件(ベースケース)が無いと、関数呼び出しのたびにスタック領域が積み上がり続け、上限に達した時点でクラッシュします。

 1  #include <stdio.h>
 2  
 3  int factorial(int n) {
 4      if (________) {
                ^
 5          return 1;
 6      }
 7      return n * factorial(n - 1);
 8  }
 9  
10  int main(void) {
11      printf("%d\n", factorial(5));
12      return 0;
13  }
Segmentation fault

空欄を埋めてコンパイル・実行を通す

広告
広告スロット(未設定)

Segmentation fault(再帰関数の終了条件忘れによるスタックオーバーフロー)

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)