• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列upでエラー発生,なぜ?)

配列upでエラー発生、なぜ?

このQ&Aのポイント
  • Fortranに慣れている私が初めて触るCでのエラーです
  • 配列のサイズ変更によりエラーが発生する現象です
  • 原因はメモリーの制限や設定にある可能性があります

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ローカル変数はスタック上に確保されるため、 巨大な配列を確保することは(基本的には)できません。 ヒープ上に確保するか、静的に確保する必要があります。 例えば質問の例でdouble ph[maxg][ND][ND]としているところを static double ph[maxg][ND][ND]として静的に確保すれば 取り敢えずは巧くいくでしょう。 その辺りを勉強してみてはいかがでしょう。

yodel
質問者

お礼

staticを入れるとうまくいきました.ありがとうございました. このプログラムは作成中で,今後考慮しなければならないパラメータを追加しなければなりませんので,それに伴って配列も増やしていくことになります.また分からない点があれば質問させていただこうと思いますので,よろしくお願いいたします. 「静的な確保」については勉強してみたいと思います. 取り急ぎお礼まで.

その他の回答 (1)

noname#38837
noname#38837
回答No.2

>maxgを25に変えるとコンパイルはうまくいくのですが,計算ができず という部分の具体例を教えてもらえますか? エリア破壊っぽい気がするのですが(確保した領域を超えて書き込み) ソースコードもできるだけ提示してみてください

関連するQ&A