找回密码
 注册
Simdroid-非首页
查看: 343|回复: 7

[3. Fortran] fortan 编程中执行时出现 stack overflow

[复制链接]
发表于 2005-12-7 20:14:38 | 显示全部楼层 |阅读模式 来自 江苏南京
在程序执行时,出现错误stack overflow
请问如何解决
发表于 2005-12-7 20:17:30 | 显示全部楼层 来自 湖南湘潭

Re:fortan 编程中执行时出现 stack overflow

Simdroid开发平台
栈溢出
 楼主| 发表于 2005-12-7 20:29:13 | 显示全部楼层 来自 江苏南京

Re:fortan 编程中执行时出现 stack overflow

我也知道时栈溢出,请问如何解决
或编程时需注意什么
发表于 2005-12-8 11:09:51 | 显示全部楼层 来自 大连理工大学

Re:fortan 编程中执行时出现 stack overflow

有可能是在出错的地方数组内指标为0,比如a(0),这样会报错的
发表于 2005-12-8 15:56:11 | 显示全部楼层 来自 北京

Re:fortan 编程中执行时出现 stack overflow

最有可能,最好一步步查
有时候计算一步时,一些量的值已经发生了变化,但是你不知道。
经验啊
发表于 2005-12-9 12:57:04 | 显示全部楼层 来自 日本

Re:fortan 编程中执行时出现 stack overflow

发表于 2005-12-15 10:43:55 | 显示全部楼层 来自 同济大学

Re:fortan 编程中执行时出现 stack overflow

解决stack flow: 一个方法,看一下你的数组有没有必要开那么多,因为visual fortran里默认的只能开1M;有些从工作站上拿下来的程序为 了占内存,开了个很大的数组,看看是不是可以去掉
               第二个方法,如果却是有必要开这个数组,那么改setting:project -> setting -> link ->在下面的option里加上:
                /stack: size
                注意好格式(参照其它option的写法),size是字节数,比如你要开4M,那就写4194304
               还有一些其它方法,可以在帮助里查stack,学一下
发表于 2005-12-21 11:04:59 | 显示全部楼层 来自 湖南长沙

Re:fortan 编程中执行时出现 stack overflow

我遇到的栈溢出的情况是:试图将一个很大的二维数组作为函数变量传递给子程序使用,后来我将子程序完成的功能放到主程序完成就避免了这个问题。
数组内指标超出你已定义的范围一般不会给出栈溢出的提示,而是给出array bounds exceed。 我想你的问题会不会跟我的一样,写在这里供你参考,总之,要尽可能避免调用子程序时传递很大的数组。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-1 21:30 , Processed in 0.044629 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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