以下のCプログラムがあるのですが、(無駄に行数が多いのでこちらから。passはsample)
http://www.dotup.org/uploda/www.dotup.o ... 8.zip.html
見てすぐに呆れると思うのですが、馬鹿みたいに事前に用意する配列が大きいです。
しかも、関数を重複する形で使用するようになってます。
これは、用意された配列を接続行列として使用し、状態遷移のたびに関数を使用して、また状態遷移するというのを繰り返しています。
このプログラムをWindows XP の Cygwin からコンパイル(gcc -o sample sample.c といったもの)し、実行(./sample)しようというのですが、やはり配列のサイズによるものか、実行結果が表示されません。というより、処理が始まっていないようにみえます。
defineのNA,NBといった数値や、配列のサイズがもう少し小さい場合は処理が実行されるのは確認しています(「NA=9,NB=76,a[256][256]」「NA=8,NB=47,a[128][128]」など。時間はかかりますが処理は実行されます)。
この場合は、実行できないと思うしかないのでしょうか。それとも何か解決策があるのでしょうか。できたら教えてください。
Cygwinによるコンパイルについて
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Cygwinによるコンパイルについて
たかが1MBほどのメモリの配列なので大きいってほどではありまえせん。
それ以外のバグの可能性が高いと思います。
printfで各変数の変化を追跡してみてはどうでしょうか?
それ以外のバグの可能性が高いと思います。
printfで各変数の変化を追跡してみてはどうでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: Cygwinによるコンパイルについて
sampleが正常に起動して動作しているかどうかは、main関数のはじめと終わりでメッセージを表示するようにすれば確認できます。