对于我在C#中的编程练习,我试图创建一个long数组,长度为0x1fffffff(base10中为536,870,911),但是我得到了System.OutOfMEmoryException.
对于构建,我针对x64系统,我在Windows7 x64上运行VisualStudio2008,内存为8GB.它应该是数组的足够内存(它适用于JDK x64和CPP项目)
有什么想法吗 ?
const long MAX = 0x1fffffff; // 536870911 in base10
program.arr = new long[MAX];
for (long i = 0; i < MAX; i++)
{
program.arr[i] = i;
}
Run Code Online (Sandbox Code Playgroud)
很难推荐任何有意义的替代品,因为你没有陈述你想要实现的目标,正是你不能做的事情.
也就是说,如果你确实需要一些快速连续的视图来查看大小超过2GB的扁平地址空间,你可以使用MemoryMappedFile.
如果你在这块内存中指出了什么意图,为什么地址空间本身必须是连续的(例如,你将指针传递给非托管代码)以及为什么它需要平面寻址,这将有所帮助.
| 归档时间: |
|
| 查看次数: |
6233 次 |
| 最近记录: |