Fortran Coder

查看: 12870|回复: 13
打印 上一主题 下一主题

[调试器] Debug才有的问题

[复制链接]

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

楼主
发表于 2015-9-9 08:34:44 | 显示全部楼层
看黑框的错误提示

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2015-9-9 12:10:51 | 显示全部楼层
在子程序结束处出错,极大可能是堆栈失衡。
可以考虑 DLL 的调用是否合理?调用协定是否一致?DLL 和 exe 是否都是 Fortran 书写?

非常建议你:谁分配谁释放。这非常重要。尤其是较大的程序。

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

板凳
发表于 2015-9-9 14:50:29 | 显示全部楼层
怎么会效率下去呢?
1.先获得大小
2.返回,分配
3.再读取
和直接调用,也一样要获得大小,分配,再读取呀。
不过是分两个过程而已,实际要做的事情是一样的。所以没有太大的差别的。

最好是严格执行“谁分配谁释放”

语法是没有考虑DLL的问题的,我不确定编译器能不能在DLL里处理好语法中所有的标准。至少 newunit 这种都处理不好。

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

地板
发表于 2015-9-9 17:17:10 | 显示全部楼层
单向串表,一般用递归函数释放。
双向串表就简单一些。

子程序里的可分配数组,无需释放(退出子程序时会自动释放)
但子程序里分配的指针,必须释放,否则会内存泄露。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-9 09:41

Powered by Tencent X3.4

© 2013-2024 Tencent

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