| 查看: 696 | 回复: 3 | |||
| 当前主题已经存档。 | |||
| 本帖产生 2 个 程序强帖 ,点击这里进行查看 | |||
[交流]
【求助】指针问题?? 已有3人参与
|
|||
|
1.module typedef 2. implicit none 3. type :: datalink 4. integer :: i 5. type(datalink), pointer :: next 6. end type datalink 7.end module typedef 8. 9.program ex1012 10. use typedef 11. implicit none 12. type(datalink) , pointer :: p, head 13. integer :: i,n,err 14. 15. write(*,*) 'Input N:' 16. read(*,*) n 17. 18. allocate( head ) 19. head%i=1 20. nullify(head%next) 21. 22. p=>head 23. do i=2,n 24. allocate( p%next, stat=err ) 25. if ( err /= 0 ) then 26. write(*,*) 'Out of memory!' 27. stop 28. end if 29. p=>p%next 30. p%i=i 31. end do 32. nullify(p%next) 33. 34. p=>head 35. do while(.true.) 36. write(*, "(i5)" ) p%i 37. if ( .not. associated(p%next) ) exit 38. p=>p%next 39. end do 40. 41. stop 42.end program 这是自动创建串行的程序。主要是12行到32,怎么也读不懂,有没有高人指点一下??谢谢了 |
» 猜你喜欢
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有14人回复
表哥与省会女结婚,父母去帮带孩子被省会女气回家生重病了
已经有11人回复
江汉大学解明教授课题组招博士研究生/博士后
已经有3人回复
AI 太可怕了,写基金时,提出想法,直接生成的文字比自己想得深远,还有科学性
已经有11人回复
同年申请2项不同项目,第1个项目里不写第2个项目的信息,可以吗
已经有10人回复
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有11人回复
tjyl
金虫 (正式写手)
- 程序强帖: 2
- 应助: 0 (幼儿园)
- 金币: 3218.1
- 红花: 2
- 帖子: 576
- 在线: 156.6小时
- 虫号: 765184
- 注册: 2009-05-07
- 专业: 生物无机化学
- 管辖: 程序语言
2楼2010-04-09 20:33:32
3楼2010-04-10 09:13:28
holmescn
金虫 (正式写手)
- 程序强帖: 37
- 应助: 1 (幼儿园)
- 金币: 1918.8
- 散金: 275
- 红花: 1
- 帖子: 699
- 在线: 102.6小时
- 虫号: 913482
- 注册: 2009-11-26
- 性别: GG
- 专业: 凝聚态物性 II :电子结构
★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+3, 程序强帖+1):多谢专家。 2010-04-10 13:09
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+3, 程序强帖+1):多谢专家。 2010-04-10 13:09
|
这可能缘于fortran的指针和C是不一样的,C里直接给指针赋值为0就代表(公认的,并不是语法规定的)空指针。而fortran里需要用nullify来给一个指针变量赋值为空。 同样因为fortran里的指针概念的不同,在Fortran里,每个对象的传递都是有指针完成的,所以head,既代表了头结点也代表了头指针。而p指针是要在链表里游走的。当然你也可以allocate(p)作为开始,但没有地方保存头指针了。 而allocate(p%nest)而不是allocate(p)这个问题你还是没有搞明白链表是怎么回事。p指向当前结点,而当前节点已经分配了啊,当然要allocate(p%next)了。 |
4楼2010-04-10 09:57:43













回复此楼