する質問をすることでしか得られない、回答やアドバイスがある。以下のプログラムでセグメンテーション違反がでます。大きな数字の用いた時にコアダンプが生じます。lldbを用いてデバッグしたところ、func関数の返り値のところでbreakしていました。ここまではわかったのですが、ここから先の解決方法がわかりません。ご回答よろしくおねがいいたします。記入不足があり申し訳有りません。SIZE以上の入力が出た時にコアダンプが出るという点は承知しております。入力値が10^4程度だとエラーが出ないのですが、10^6くらいの値からエラーが出ます。attachmentクリップ0気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。件sort評価が高い順sort新着順sort古い順linkcheckベストアンサー+3今回の場合は再起呼び出し回数が多すぎることが最初の原因なので、そっちのパッチが大事かなと思います。コールスタックは有限なので...数字を増やすとリニアに呼び出し回数が増えるタイプの再帰呼び出しは考え方を変えないといけないかなと。今回の設計の場合は隙間なくnの値が取られるので、再帰的じゃなくて、下から計算すればいいんじゃないかと思います。0;}この関数は現状のサンプルでは参照透過なので、予め決まったnの値に対応する辞書を生成しておくことによってメモリスペースと計算量をトレードオフにできます。ファイルに全部書き出しておいてそこから値を引っ張ってきてもいいですし、等間隔に辞書で計算結果をもっておくことによって計算量の最大を固定することもできます。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。09:15このような書き方で解決もできるんですね!勉強になります。一応確認なのですが、これはposition=4から計算する事でmemo[n]に値が保存されて、それを利用して計算できるからスタックオーバーフローが起きずに済むと言う解釈で大丈夫でしょうか?このような書き方で解決もできるんですね!勉強になります。このメソッドは再帰呼び出しをしていますが、バッファ(memo[n])に計算結果を記録していて、記録済みの値の呼び出し時はネストがありません。そのため、下から呼び出していくと常に呼び出しの深さは1回にしかならないため、スタックが消費されません。いう書き方ができるかどうかは計算内容にもよりますが、nが整数値の場合は比較的やりやすいです。このメソッドは再帰呼び出しをしていますが、バッファ(memo[n])に計算結果を記録していて、記録済みの値の呼び出し時はネストがありません。そのため、下から呼び出していくと常に呼び出しの深さは1回にしかならないため、スタックが消費されません。いう書き方ができるかどうかは計算内容にもよりますが、nが整数値の場合は比較的やりやすいです。17:34なるほど!わざわざ例まで出していただき、ありがとうございました!簡単なプログラムですが、色々と勉強になりました・・・。考えてプログラムを書けるように頑張ります。簡単なプログラムですが、色々と勉強になりました・・・。考えてプログラムを書けるように頑張ります。出たならば、たいていは配列の添え字オーバーです。確保しきれてない可能性があります。ヒープ領域に確保されているはずですが、ヒープがそこまで大きくないのかもしれませんね。動的に確保するようにして、失敗するかどうか確認してみるのもいいかもしれません。(追記)あともう一つ、スタック領域が足りない可能性がありますか。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。13:24わかりやすい回答ありがとうございます!スタックオーバーフローを起こしているようで、別の書き方で取り組んでみます。スタックオーバーフローを起こしているようで、別の書き方で取り組んでみます。アドバイスありがとうございます!キャンセル完了するlink+2スタックオーバーフローを起こしているのではないでしょうか。スタック領域の上限サイズは処理系にもよりますが、100万階層もの再帰呼び出しは多すぎのように思います。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。13:20別の書き方で取り組んでみます。呼び出しが深すぎたようです・・・・。アドバイスありがとうございましす!別の書き方で取り組んでみます。呼び出しが深すぎたようです・・・・。アドバイスありがとうございましす!キャンセル完了するlink+2memo[n]って初期化していないが何が入っているのだろうかそれと、終わるまでがすごい長そうだけれど、スタックがすごい積まれそう。memo[SIZE];は予定通り確保できない可能性がありますね昔、自分もかなり大きな配列用意しようとしてうまくいかなかった記憶があります。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。13:19グローバル変数として定義している場合は0に初期化されたと思います。競技プログラミングのためにSIZEで値を定義してこの値で毎回プログラムを書いていましたが、やはり動的確保をした方が良さそうですね・・・。スタックオーバーフローを起こしているようなので、別の書き方で取り組んでみます。アドバイスありがとうございます!グローバル変数として定義している場合は0に初期化されたと思います。競技プログラミングのためにSIZEで値を定義してこの値で毎回プログラムを書いていましたが、やはり動的確保をした方が良さそうですね・・・。スタックオーバーフローを起こしているようなので、別の書き方で取り組んでみます。確保してないはずの領域にアクセスできた、って逆の例もありました。起こすという嫌な動きをしてくれたことが。確保してないはずの領域にアクセスできた、って逆の例もありました。起こすという嫌な動きをしてくれたことが。13:31逆の例、初めて聞きました。笑やはり他の人のエラーを聞くと非常に勉強になりますね・・・!配列の扱いでしょっちゅうエラーを起こしてしまうので慣れるまで頑張ります。逆の例、初めて聞きました。配列の扱いでしょっちゅうエラーを起こしてしまうので慣れるまで頑張ります。グローバル変数だと0初期化でしたか。さん確かにうまくいくこともありますね。次のビルド(またはコンパイル)時に埋まってしまってアウト)そうか。グローバル変数だと0初期化でしたか。確かにうまくいくこともありますね。SIZEを超えてたらふっ飛ぶのはアタリマエだけど。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。13:0010^6位からエラーが出ます。999999でエラーが出ます。10^6位からエラーが出ます。999999でエラーが出ます。キャンセル完了するlink+1こんにちは。大きな数字の用いた時にコアダンプが生じます。SIZE以上の数字を指定するとコアダンプになってもおかしくないです。nにはSIZE(10000001)未満の値を指定すれば大丈夫なはずです。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。13:04記入漏れがあり申し訳有りません。SIZE以下の入力でセグメンテーション違反が起きてしまいます。10^6でエラーが生じます。記入漏れがあり申し訳有りません。SIZE以下の入力でセグメンテーション違反が起きてしまいます。10^6でエラーが生じます。