Code Fix

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

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

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

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

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

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

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

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

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