Fortran에서 링크 된 목록을 사용하여 정의되지 않은 길이의 데이터 배열을 보유하고 싶습니다.Fortran은 어떻게 링크 된 목록을 할당 해제합니까?
TYPE linked_list
INTEGER :: data
TYPE(linked_list) :: next_item => NULL()
END TYPE
지금 나는 그런 목록을 만들라고 :
나는 다음과 같은 설정을 가지고
DEALLOCATE(example_list)
할 모든 : 내가 수행하는 경우
TYPE(LINKED_LIST) :: example_list
example_list%data =1
ALLOCATE(example_list%next_item)
example_list%next_item%data = 2
ALLOCATE(example_list%next_item%next_item)
example_list%next_item%next_item%data = 3
내 질문은, 중첩 된 레벨도 할당을 해제하거나 목록을 가장 깊은 요소로 이동하고 가장 깊은 요소에서 할당을 해제해야합니다. 위쪽으로?
같은
사용은 내가 포트란에서 이런 짓을하기 때문에 오랜 시간이,하지만 난 당신이 수동으로 할당 해제해야 확신합니다. 머리를 할당 해제하면 참조를 잃어 버리고 메모리 누수가 발생합니다. – ChrisF
예. 나는 그것을 두려워했다. 나는 말을해야한다, 나는 문제가있다, 어떤 구절 이냐, 나 자신의 가비지 수집을 굴리는 것? – EMiller
메모리 관리 포트란을 구현할 수 없습니다. –