C++メインプログラムからFortran 90コードを呼び出そうとしています。 Fortranのサブルーチンは、double型の配列(Xと呼ぶ)をパラメータとして受け取り、コードの多くの場所でsize(X)を使用します。私はFortran90とC++で作成された配列のサイズ
double *x = new double[21]
によって作成されたCアレイとルーチンを呼び出すが、私はFortranコードでサイズ(X)の結果を印刷するとき、私は837511505、または他のいくつかの大きな数字を取得します。
現在、私はFortranコードを変更できます。最悪の場合は、サイズをパラメータとして渡して関数を書き直すことです。しかし、私はむしろそれをしないだろう。
Fortranルーチンがそのサイズを把握できるような方法でC配列を作成できる方法があれば誰にも分かりますか?
おそらくFortranは、渡しているポインタに対してメモリのどこかに配列のサイズが格納されていると予想していますが、C++はそれを強く要求しません。 –