Ich versuche, einige Fortran 90-Code aus einem C++ - Hauptprogramm aufzurufen. Die Fortran-Subroutine nimmt ein Array von double (nennen Sie es X) als Parameter und fährt fort, die Größe (X) an vielen Stellen im Code zu verwenden. Ich nenne die Routine mit einem C-Array erstellt durchFortran90 und Größe der in C++ erstellten Arrays
double *x = new double[21]
aber wenn ich das Ergebnis der Größe (X) in der Fortran-Code drucke ich bekommen 837.511.505, oder einige andere große Zahlen.
Im Moment habe ich die Fortran-Code ändern, so schlimmsten Fall ist die Funktion neu zu schreiben, um die Größe als Parameter übergeben. Aber ich würde es lieber nicht tun.
Weiß jemand, ob es einen Weg gibt ich die C-Array derart schaffen, dass die Fortran-Routine seiner Größe herausfinden können?
Offensichtlich erwartet Fortran vermutlich, dass die Größe des Arrays im Speicher relativ zum Zeiger gespeichert ist, den Sie übergeben, aber C++ verpflichtet es nicht. –