fortran90を用いて、再帰的手続きを含むプログラムを実装していた際に、ある程度の深さまで行くと、「Segmentation fault」を吐いて止まってしまうことがわかったのですが、どなたか、こちらの解消方法をご存じないでしょうか。
問題を再現する小さなコードを以下に示します。
(このコードはあくまで例であり、これで何かをしたいというわけではありません。)
コンパイルにはgfortranを用い、オプションはつけていません。
どうぞよろしくお願い致します。
fortran
1program main 2 implicit none 3 4 Integer :: r 5 r = func(10000000) 6 7contains 8 recursive function func(n) result(ret) 9 Integer, intent(in) :: n 10 Integer :: ret 11 12 if(1<=n) then 13 ret = func(n-1) 14 else 15 ret = 1 16 end if 17 end function func 18 19end program main
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/17 10:17