Fortran Coder

标题: 链表内存释放 [打印本页]

作者: c84486958    时间: 2020-7-18 15:25
标题: 链表内存释放
求助!!!!
过程描述:
      循环地使用指针链表、删除链表。目前程序的做法是删除指针链表(表头),但是这并未删除整个链表所占用的运行内存

请教问题1:这种删除指针链表(表头),为何不能删除整个指针链表?
请教问题2:如何在每次使用后删除指针链表,但是不增加过多运算(即有没有不需要对每一个链表节点单独删除的做法,因为节点太多,执行释放对程序运行又是另一负担)?

[Fortran] 纯文本查看 复制代码
program main
implicit none

integer i,j
type tableType
  integer :: i
  type(tableType), pointer :: next
END TYPE
type(tableType), pointer :: table,tableHd


do j=1,100
  allocate(tableHd)   ! 储存链表
  table=>tableHd    ! 过程链表
  nullify(table%next)
  do i=1,10000
    table%i=i
    allocate(table%next)
    table=>table%next
    nullify(table%next)
  enddo
  deallocate(tableHd)
enddo

i=0 ! pause

end program main



作者: li913    时间: 2020-7-18 22:37
1、上线暴露被捕,下线还可以逃;2、不能。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2