- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列upでエラー発生,なぜ?)
配列upでエラー発生、なぜ?
このQ&Aのポイント
- Fortranに慣れている私が初めて触るCでのエラーです
- 配列のサイズ変更によりエラーが発生する現象です
- 原因はメモリーの制限や設定にある可能性があります
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ローカル変数はスタック上に確保されるため、 巨大な配列を確保することは(基本的には)できません。 ヒープ上に確保するか、静的に確保する必要があります。 例えば質問の例でdouble ph[maxg][ND][ND]としているところを static double ph[maxg][ND][ND]として静的に確保すれば 取り敢えずは巧くいくでしょう。 その辺りを勉強してみてはいかがでしょう。
その他の回答 (1)
noname#38837
回答No.2
>maxgを25に変えるとコンパイルはうまくいくのですが,計算ができず という部分の具体例を教えてもらえますか? エリア破壊っぽい気がするのですが(確保した領域を超えて書き込み) ソースコードもできるだけ提示してみてください
お礼
staticを入れるとうまくいきました.ありがとうございました. このプログラムは作成中で,今後考慮しなければならないパラメータを追加しなければなりませんので,それに伴って配列も増やしていくことになります.また分からない点があれば質問させていただこうと思いますので,よろしくお願いいたします. 「静的な確保」については勉強してみたいと思います. 取り急ぎお礼まで.