如何从fortran指针获取唯一值

时间:2012-08-10 09:55:34

标签: fortran fortran95

我有一个fortran指针,指的是一些已分配的内存。我想“哈希”它,以便我得到一个引用该内存的唯一数字。在C中,我将指针位置转换为整数。

1 个答案:

答案 0 :(得分:6)

在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)