Fortran Coder

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

[指针] 链表内存释放

[复制链接]

5

帖子

3

主题

0

精华

入门

F 币
34 元
贡献
19 点
跳转到指定楼层
楼主
发表于 2020-7-18 15:25:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助!!!!
过程描述:
      循环地使用指针链表、删除链表。目前程序的做法是删除指针链表(表头),但是这并未删除整个链表所占用的运行内存

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

[Fortran] 纯文本查看 复制代码
01program main
02implicit none
03 
04integer i,j
05type tableType
06  integer :: i
07  type(tableType), pointer :: next
08END TYPE
09type(tableType), pointer :: table,tableHd
10 
11 
12do j=1,100
13  allocate(tableHd)   ! 储存链表
14  table=>tableHd    ! 过程链表
15  nullify(table%next)
16  do i=1,10000
17    table%i=i
18    allocate(table%next)
19    table=>table%next
20    nullify(table%next)
21  enddo
22  deallocate(tableHd)
23enddo
24 
25i=0 ! pause
26 
27end program main


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

838

帖子

2

主题

0

精华

大宗师

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

本版积分规则

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

GMT+8, 2025-4-30 00:47

Powered by Discuz! X3.4

© 2013-2025 Comsenz Inc.

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