我有一个带有两个指针的类型,一个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}}的内容吗?
答案 0 :(得分:2)
想出可以使用的名为constant c_null_ptr
的内在类型。