我有以下非常简单的代码。我不了解的是,在取消分配数组x
之后,我会认为指针ptr
不再可以被取消引用。但是,如果运行该程序,您将看到print
语句将正确给出x
的值,并且即使在取消引用指针之前就已经重新分配了数组,也同样会给出其大小。
这是因为我的x值仍加载在较高的内存级别(L1,L2等)上,并且需要更多时间来刷新其状态吗?
program ptr_deall
implicit none
real, allocatable,target :: x(:)
real, pointer :: ptr(: )
allocate(x(100))
x = 100
ptr => x
deallocate(x)
print*, ptr,size(ptr)
end program