我想检查一个派生类型内的指针是否已经定义或不。我写了下面简单的代码向你展示我的问题:派生类型中的关联指针? gFortran与英特尔
program test
implicit none
type y
real(8), pointer :: x(:)
end type y
type(y), pointer :: w(:)
allocate(w(2))
allocate(w(1)%x(2))
write(*,*) associated(w(1)%x), associated(w(2)%x)
end program test
编译此代码与gFortran 4.4.1和运行在Ubuntu上它给出结果:
T F
,而在Windows编译相同的代码Vista与英特尔Fortran编译器11.0提供:
T T
第一个结果(gFortran)就是我所期望的。但是,英特尔编译器提供了不同的结果,这让我担心我的代码可能不正确。我在做这个例子中的指针有什么问题吗?任何想法或解释?
非常感谢您的帮助!
非常感谢!这确实是问题所在。英特尔编译器和gFortran都可以很好地解决您的问题。 – remek 2009-12-15 20:01:52