pointers - 什么是未初始化的指针指向,我可以在 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 在第一次检查中显示它是关联的?它与什么有关?是否可以检测到这样一个尚未初始化但仍显示它关联的指针?
解决方案
推荐阅读
- javascript - 使用 jquery 步骤转到 div
- tfs - 文件匹配排除模式在复制文件任务中工作但不在删除文件任务中?
- google-app-maker - 将不同数据源加载到不同页面上的面板的按钮
- haskell - 无法将 a 类型与 a1 匹配,但类型看起来相同
- angular - Angular 7 & Typescript - 如何检查是否选中了动态必需复选框以禁用按钮
- google-apps-script - 尝试将 ppt 转换为 Google Slide 时收到转换错误
- mysql - 具有三个 where 条件的 select 查询速度较慢,但具有三个 where 条件中的任意两个条件的相同查询速度较快
- python - 什么时候在 Python 中初始化一个类变量?
- javascript - Does this for loop iterate multiple times?
- python - 将 XML 转换为特定格式的嵌套 JSON 对象