取消分配数组目标,但指针似乎仍然具有值

时间:2019-10-14 09:09:04

标签: pointers fortran allocatable-array

我有以下非常简单的代码。我不了解的是,在取消分配数组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

0 个答案:

没有答案