program test
do k=1,10
call sub
end do
pause
end program test
subroutine sub
implicit none
integer,save::i=1
integer(4),allocatable:: a(:,:,:)
allocate(a(1024,1024,1024/4)) ! 1G内存
a=i
write(*,*) a(1,1,1)
i=i+1
end subroutine
vvt 发表于 2017-3-21 12:41
子程序里 allocatable 的数组会自动释放,但是 pointer 不会。
所以如果大量运用指针,内存泄漏是可能的。 ...
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |