1

我有以下非常简单的代码。我不明白的是在我解除分配我的数组之后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
4

0 回答 0