- ベストアンサー
配列の初期化について
今取り組んでいるC言語の課題の中で、 二次元配列"map[100][100]"を初期化するようにしたいのですが、 intでcomx,comyという二つの変数を宣言して、 for(comy=0;comy<100;comy++){ for(comx=0;comx<100;comx++){ map[comx][comy]=0; } } のように初期化を図ったのですが、実行するとなぜか初期化が終わらず、 計算しっぱなしで止まってしまいます。(コンパイルは出来ます) 解る方、どこがおかしいのか指摘お願いします。。 (質問ミスっていたので質問し直しました)
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
http://okwave.jp/qa/q7236116.html 前回の質問のどこをミスったのか分かりませんが、(前回よりも情報量が少なくなっている気もしますが) いずれにしても前回、回答をいただいている内容は検証されたのでしょうか? コンパイルエラーもリンカーのエラーも出ないで、暴走しているというのは、メモリ領域を壊している以外考え難く、前回の質問でいただいている回答もそれを指摘されているかと思います。たいへん詳しく説明されております。 要は、int a[100][100] のメモリ領域が正しく確保されていないのだと思います。領域が確保出来ているのであれば、記述自体、前回のでも今回のでも特に問題はないです。 まずは使っているコンパイラの使用条件(前回の回答のURLでは、自動変数は2500バイトしか確保出来ないなどの情報もあります)やメモリモデルなどの条件を見直してみるとか、 グローバル領域に割り当てたり、malloc() (これも前回の回答のURLに記載されています)などを使ってみるなど。 もしくはMAPファイルが出力されるのであれば、それを見てみるとか、 色々と検証してみることはあるかと思いますよ。 ご参考に。
お礼
申し訳ございません、 色々と勘違いしておりました。。