【发布时间】:2015-05-16 06:38:55
【问题描述】:
在 Fortran 中,如果我有一个派生类型的可分配数组,每个类型由一个指针和一个可分配数组组成,
type group
real, pointer :: object
real, allocatable :: objectData(:,:)
end type group
type(group), allocatable :: myGroup(:)
我是否可以通过简单的调用来释放此类型中包含的所有内存
deallocate(myGroup)
或者在释放派生类型之前,我是否需要先释放每个类型中的数组:
do i = 1, size(myGroup)
nullify(myGroup(i)%object)
deallocate(myGroup(i)%objectData)
end do
deallocate(myGroup)
我倾向于选项 2 并在释放派生类型之前使所有内存无效,如果不仅仅是为了确保不会发生内存泄漏,但如果选项 1 是等效的,那么这将对将来的参考有用并拯救我几行代码。
【问题讨论】:
标签: memory-leaks fortran