1

假设我有这个子程序:

subroutine a () 
  integer, pointer :: b 
  allocate(b) 
end subroutine a 

该变量b位于子程序的堆栈上,因此一旦程序从子程序返回,该变量就会被销毁。但是它指向的目标呢?据我通过阅读 F90 标准可以看出,目标没有被释放,但我找不到明确的说法。

4

1 回答 1

1

简短的回答是否定的。你有责任打电话deallocate(b),就像你allocate(b(100))一开始就负责打电话一样。

于 2013-05-04T01:06:34.597 回答