1
할당 된 메모리를 참조하는 포트란이 있습니다. 내가 그 메모리를 참조하는 고유 번호를 얻을 수 있도록 "해시"하고 싶습니다. C에서는 포인터 위치를 정수로 변환합니다.포트란에서 유일한 값을 얻을 수있는 방법
할당 된 메모리를 참조하는 포트란이 있습니다. 내가 그 메모리를 참조하는 고유 번호를 얻을 수 있도록 "해시"하고 싶습니다. C에서는 포인터 위치를 정수로 변환합니다.포트란에서 유일한 값을 얻을 수있는 방법
Fortran 95에서 이것은 엄격하게 표준을 준수하는 방법으로 가능하지 않습니다. 공급 업체 확장을 사용해야합니다. 필요한 기능은 종종 LOC 또는 이와 유사한 내장 함수를 통해 사용할 수 있습니다.
Fortran 2003에서 Fortran 포인터가 가리키는 객체의 성격에 따라 객체의 C 주소 (메모리 위치)를 정수로 변환 할 수 있습니다.
USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC, C_INTPTR_T
TYPE(thing), POINTER :: object
INTEGER(C_INTPTR_T) :: an_integer
!****
ALLOCATE(object)
an_integer = TRANSFER(C_LOC(object), an_integer)