首页 > 解决方案 > 什么是未初始化的指针指向,我可以在 fortran 中检测到这种状态吗

问题描述

system:
Mac OSX 15.something
gfortran 10.2.0

考虑以下程序及其输出

program main
  character(len=256), target :: c
  character(len=256), pointer :: p
  c = "foo bar"
  print *, associated(p)
  ! print *, p  -> gives segfault of course
  p => c
  print *, associated(p)
  print *, trim(p)
  nullify(p)
  print *, associated(p)
end program main
>>> ./a.out
T
T
foo bar
F

为什么 p 在第一次检查中显示它是关联的?它与什么有关?是否可以检测到这样一个尚未初始化但仍显示它关联的指针?

标签: pointersfortran

解决方案


推荐阅读