回 帖 发 新 帖 刷新版面

主题:stack overflow这样的错误原因可能是什么?

如题,我已将错误截图附上,请问这样的错误很可能是由于什么原因引起的?谢谢!!

回复列表 (共8个回复)

沙发

首先查数组是否越界,其次可能是占用内存过多需要在link设置较大的内存比如512000000,在IVF+VS 里面,stack有时候是0, 手工改一下就好了。

绝大多数的情况都是上面2种。

板凳

那请问第二种原因应该如何修改?

3 楼

我用的fortran是microsoft visual studio的intel fortran。不知道如何设置,请赐教!而且我的程序编译通过,没有错误。但是就是出现上述的over flow。关键是我不知道哪里over flow,如果知道我应该知道怎么改。有什么方法可以追踪这个错误么?

4 楼

该栈空间大小:项目\属性\linker\system---->stack reserve 改大一点
5000000 ,这个是5MB
或者编译选项用heap arrays,具体在: 项目\属性\Fortran\optimization---->Heap Arrays  设置为 0

5 楼

谢谢你的回复!!不过我已经找到错误了,是因为在主程序里定义的parameter,然后call subroutine时传入subroutine里就变成了变量,subroutine不再将它视为parameter了,然后定义矩阵时就会出错。只有在主程序里它还被视作parameter。

6 楼


请问,在主程序定义为parameter,调用子程序时,把它看做是变量,这样要怎么解决呢?还是不要写成子程序形式?谢谢!

7 楼


哥们儿,我不上论坛好多年,这个是去年我发的问题。记忆中好像在子程序里面再定义一次

8 楼

最近我的程序出现了该问题,按照4楼的方法解决了,感谢4楼!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册