C言語を利用したプログラムに関する質問です。巡回セールスマン問題を2-opt法による最降急下法で解く課題に取り組んでいるのですが、セグメントエラーが発生して処理が途中で止まってしまい困っています。一回の関数TowOptの処理ごとに移動距離が改善したかを、関数UpdateOrderで判定します。2-opt法をすべて変形方法で適応します。経路変形のすべての方法を試しても移動距離が改善しない場合、ループ処理を終了して終了時の移動距離を近似解とするようにします。main関数中--[1]で経路変形方法を保管した配列nCrをprintしてみると,セグメントエラー直前で中身がおかしくなり,その値を関数TwoOptに渡すことによりセグメントエラーが発生していると思います。そこで質問なのですが、なぜ配列nCrの中身がおかしな値になってしまったのでしょうか。長いコードで読むのが大変だとは思いますが、どうかお助けください。プログラムに利用する都市配置データを添付しておきます。Cygwin添付ファイルcities06.csvプログラムに利用した都市配置データです。5年前すみません掲示したコードでは、コンパイルできませんね。しても、式自体あやしいけどね)そのまま張り付けてCygwinで通るのですか?とてもそう思えないのですが...検証してもらうのであれば、せめてコンパイルできるようにして張り付けてください。);//nCr[353*2]を確保calcNCRではnCr[0]からnCr[19]まで数値を代入している(それ以降は何も行っていない、つまり、nCr[20]からはどんな数値が入っているのか不明)。1]までループして使っている。nCr[20]からはどんな数値が入っているのかは不明なので、たとえば-23423423などの数値が入っているとそれは予期せぬメモリへとアクセスをしちゃいます。nCr[21]);で変な数値が入りエラーとなる多分こんな感じのエラーかと思います。ミクプラは自由にリンクできます。