回 帖 发 新 帖 刷新版面

主题:total image size 这个是什么意思

我在计算时发现这个问题: 
warning LNK4084: total image size 600170496 exceeds max (268435456); image may not run
这个是不是数组开大了。在不改变数组大小的情况下,怎么办?能否修改程序的内部设置?
谢谢!

回复列表 (共7个回复)

沙发

只要不出现负数,程序运行不受影响

板凳

这个只是警告而已,告诉你生成的 EXE 镜像文件太大,可能无法运行,事实上,如果你可以运行,则完全不必考虑这个警告。

3 楼

请问石头兄这个问题是因什么引起的,是因为数组开的太大吗?如果是这个原因,是否是一个无法避免的问题,因为计算的确需要那么大的数组。我的也是常常有这个警告,不过不妨碍运行。谢谢了。
warning LNK4084: total image size 722407424 exceeds max (268435456); image may not run

[quote]这个只是警告而已,告诉你生成的 EXE 镜像文件太大,可能无法运行,事实上,如果你可以运行,则完全不必考虑这个警告。[/quote]

4 楼


以下摘自过去的老帖http://bbs.pfan.cn/post-283241.html。供参考

256M image size 限制是windows操作系统造成的:

Windows 95 and NT 4.0 (prior to SP3) have a limit on the virtual address space of processes or applications of 256 MB. Windows XP/2000/NT 4.0 (SP3+)/Me/98 have a limit of 2 GB. For more information, including how to increase the limit to 3 GB, see Memory Support and Windows Operating Systems .
A program can contain a number of allocatable arrays that exceed the limit, as long as the total sizes of those that are allocated at any point during execution do not exceed the limit.

可能的解决问题的方法:
1.把静态内存分配改成动态分配;
2.有时把静态分配的数组加save属性也能解决问题;
3.操作系统升级;
4.增加物理内存数量;
5.修改程序,减少大数组的使用。

5 楼

看了回答,还不是很明白,现在我的不能运行下去该怎么解决呢?

6 楼

把程序中较大的数组都开辟成 Allocatable 的动态数组。

7 楼

我目前也遇到这个问题呢。将数组增大就出现这个内存不够

我来回复

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