我正在做一些非常大的数组处理。我做了一个全球声明:
`float array[200][1600][811];`
当我在 MS Visual Studio 2010 中构建解决方案时,出现以下错误
LINK : fatal error LNK1248: image size (F85C8000) exceeds maximum allowable size (80000000)
现在,我知道这相当于大约 1 GB 的程序内存。但该声明适用float [50][1600][811]
于 250 MB 的声明。我知道默认堆栈大小非常有限。我已经尝试过几件事。我通过 Properties -> Linker -> Stack reserved size 增加了 VS 中的堆栈大小。这没有帮助。我将我的可执行文件更改为在 x64 模式下运行(据说可以寻址高达 2GB 的内存!)。这也没有帮助。
我不想malloc
在数组上做 a ,因为我确定我的代码中需要它们。我必须对它们进行全局声明,以便我可以利用堆栈/堆内存。如果我在 my 中声明它们Main ()
,则会出现内存溢出错误。
任何指针将不胜感激。谢谢。