Fortran Coder

查看: 94|回复: 1

[指针] 链表内存释放

[复制链接]

1

帖子

1

主题

0

精华

新人

F 币
10 元
贡献
4 点
发表于 2020-7-18 15:25:30 | 显示全部楼层 |阅读模式
求助!!!!
过程描述:
      循环地使用指针链表、删除链表。目前程序的做法是删除指针链表(表头),但是这并未删除整个链表所占用的运行内存

请教问题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


回复

使用道具 举报

541

帖子

1

主题

0

精华

大宗师

F 币
2682 元
贡献
1710 点
发表于 2020-7-18 22:37:17 | 显示全部楼层
1、上线暴露被捕,下线还可以逃;2、不能。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2020-8-6 23:52

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表