- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++6.0での配列の動作不良)
VC++6.0での配列の動作不良
このQ&Aのポイント
- 現在、VC++6.0のWin32 Console Applicationプロジェクトでプログラムを書いているのですが、配列の様子がおかしいです。AとSのfor文はまったく同じで、SかわりにAを使うと、エラーは生じません。
- 具体的に言うと、ヘッダで#define N 10、#define NN (2*N*2*N)と配列を宣言しているのですが、A,B,Cそれぞれの配列への値の書き込みは普通に行えるのですが、Sに値を書き込んでいる最中にプログラムが強制終了してしまいます。
- またヘッダで、#define N 10、#define NN 400とNNを数字で表すとこのエラーが生じず、普通に実行されます。なぜこのようなことが起こるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
締め切られていないようなので補足しますと。 --- auto変数にてスタックに領域を確保する場合は linkパラメータでstack領域を増やすことで解決します。が、お薦めしません。 一時的に領域を確保し、計算終了後に領域を解放するのであれば、malloc(or new)で確保、free(or delete)で解放が望ましいです。
その他の回答 (1)
- yatokesa
- ベストアンサー率40% (201/496)
回答No.1
配列はどこで宣言されていますか? 関数内に宣言しているのであれば、スタックオーバーフローの可能性があります。static で領域を確保するようにしてみてください。
お礼
ご回答ありがとうございます。 おっしゃるとおりオーバーフローしているようでした。 staticで宣言するとうまくいきました。 ありがとうございました。