f2c コンバーター (f2c) を使用して一部のレガシー Fortran コードを C に変換し、Windows 7 (64 ビット) で Visual Studio 10 ソリューションを作成しました。また、C++ プログラム (メイン関数を含む test.cpp) を f2c ライブラリ (システム上で nmake を使用して構築) にリンクする必要もありました。
プログラムは実行されますが、メイン関数の最後に到達すると、次のデバッグ エラーが表示されます。
Stack around the variable 'qq' was corrupted
Stack around the variable 'pf' was corrupted
Stack around the variable 'ampls' was corrupted
これは、変換された C (Fortran から) ファイルで f2c コンバーターによって行われた「修正」によるものではないかと考えています。
/* Parameter adjustments */
--x1;
--xabs;
--ximag;
--xreal;
--work4;
--work3;
--work2;
--work1;
--ampls;
--pf;
--qq;
--tri;
これらの変数はすべて C 配列であるため、これは少し奇妙に思えます。f2c プログラムは、Fortran と同様の方法で、配列のインデックス 0 がインデックス 1 になるようにポインター演算を実行しているだけだと思います。
これが、割り当てられていない配列の要素にアクセスする変換されたコードで何か問題が発生したことが原因である可能性があるかどうかはわかりません。
このエラーをデバッグして修正する最善の方法は何ですか?