Fortran Coder

查看: 6936|回复: 1
打印 上一主题 下一主题

[指针] 链表内存释放

[复制链接]

5

帖子

3

主题

0

精华

入门

F 币
34 元
贡献
19 点
跳转到指定楼层
楼主
发表于 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


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

796

帖子

2

主题

0

精华

大宗师

F 币
3787 元
贡献
2266 点
沙发
发表于 2020-7-18 22:37:17 | 只看该作者
1、上线暴露被捕,下线还可以逃;2、不能。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-19 11:48

Powered by Tencent X3.4

© 2013-2024 Tencent

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