如何使Fortran c_ptr为null?

时间:2015-01-26 10:36:13

标签: pointers null fortran fortran-iso-c-binding

我有一个带有两个指针的类型,一个Fortran指针和一个C指针:

type mytype
  procedure(whatever), pointer, nopass :: fortranPointer
  type(c_ptr) :: cPointer
end type 

我可以为两个指针指定一些内容,如:

type(mytype) :: instance
instance%fortranPointer => fPtrToSomething
instance%cPointer = c_loc(somethingElse)

当我想在不指定内容的情况下初始化指针时,我可以使用null()nullify作为Fortran指针:

instance%fortranPointer => null()

但是如何将c_ptr初始化为null? instance%cPointer = null()无法正常工作,因为null()不允许在分配的右侧。 c_loc(null())不允许null(),因为c_null不是变量,可以获取该位置。

有类似{{1}}的内容吗?

1 个答案:

答案 0 :(得分:2)

想出可以使用的名为constant c_null_ptr内在类型