FORTRAN, jeśli mają allocatable wachlarz typów pochodnych, z których każdy składa się z wskaźnika i allocatable tablicy,Czy zwalnianie typu wyprowadzonego z Fortranu automatycznie zwalnia również tablice i wskaźniki członków?
type group
real, pointer :: object
real, allocatable :: objectData(:,:)
end type group
type(group), allocatable :: myGroup(:)
ja w stanie zwalnianie wszystkie pamięci zawarte w tego typu przez proste pojedyncze połączenia
deallocate(myGroup)
czy muszę zwalnianie tablice obrębie każdego typu pierwszego, przed dealokując typ pochodny:
do i = 1, size(myGroup)
nullify(myGroup(i)%object)
deallocate(myGroup(i)%objectData)
end do
deallocate(myGroup)
Przechodzę do opcji 2 i anuluję całą pamięć przed zwolnieniem typu pochodnego, jeśli nie tylko po to, aby zapewnić, że wycieki pamięci się nie pojawią, ale jeśli opcja 1 jest równoważna, to byłaby przydatna do wykorzystania w przyszłości i uratuje mnie kilka linie kodu.
Ups, dobrze zadzwoń do przypomnienia, aby również zwolnić wskaźniki. Dzięki! To odpowiada na moje pytanie. – vincentjs