我用Compaq Visual Fortran编写了一个程序。该程序是好的,并在许多情况下正常运行。现在我工作的情况下较大,具有较大的输入数据文件,当我运行该程序,我有以下错误:使用Fortran进行堆栈溢出
forrtl: severe(170): Program exception - stack overflow
我已经安装了editbin.exe
程序,但我真的不知道该怎么用它。当输入
editbin /STACK:4000000 DFDEV.exe
它告诉我,它无法打开DFDEV.exe
,即使我包含此程序的目录中(C:\ Program Files文件\微软的Visual Studio \ COMMON \ MSDEV98 \ BIN)。 我真的不知道如何解决这个问题,并且我在互联网上发现的关于这个主题的每个主题都没有解释如何使用这个editbin程序。
也许你在运行'editbin'时必须提供'DFDEV.exe'的完整路径。如果您只是在命令行键入'editbin'而没有任何其他命令行输入,[您将得到一个总结editbin选项的用法语句](http://msdn.microsoft.com/zh-cn/library/xd3shwhf %28V = VS.80%29.aspx)。但是,如果您不知道如何使用editbin,是什么让您认为它是调试程序异常错误的正确工具? – Chris 2012-04-01 16:11:42
如果您的问题是您的数据太大而无法放入堆栈,您可以考虑在堆上分配数据。 – 2012-04-01 16:27:31
+1 @ DavidHeffernan的评论;特别是对于不使用动态分配的Fortran程序,堆栈溢出几乎总是意味着子程序或函数中的大型静态数组变得太大而不适合堆栈。根据你的操作系统,有变通的方法,或者你可以说服你的编译器在堆上分配大型数组,但最重要的是开始努力没有这么大的静态数组,而是根据需要分配它们。 – 2012-04-01 17:04:17