C++ 메인 프로그램에서 Fortran 90 코드를 호출하려고합니다. Fortran 서브 루틴은 double (X라고 함) 배열을 매개 변수로 사용하여 코드의 여러 위치에서 크기 (X)를 사용합니다. 나는Fortran90과 C++로 생성 된 배열의 크기
double *x = new double[21]
을 통해 생성 된 C 배열로 루틴을 호출하지만 포트란 코드 크기 (X)의 결과를 인쇄 할 때 나는 837,511,505, 또는 다른 큰 숫자를 얻을.
지금은 포트란 코드를 수정할 수 있으므로 최악의 경우 매개 변수로 크기를 전달하여 함수를 다시 작성하는 것입니다. 그러나 나는 그것을하지 않을 것입니다.
Fortran 루틴이 크기를 알아낼 수있는 방법으로 C 배열을 만들 수있는 방법이 있다면 누구에게 알 수 있습니까?
박쥐를 제외하고, 아마 Fortran은 당신이 건네주고있는 포인터에 비례하여 배열의 크기가 메모리 어딘가에 저장되어있을 것이라고 예상하지만, C++은 그것을 강요하지 않습니다. –