这一个抛出OutOfMemoryException
。为什么要创建一个新的数组抛出OutOfMemoryException?
目标框架.NET 3.5,在64位Windows 2008 R2标准运行。
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
byte[] test = new byte[Int32.MaxValue];
}
}
}
根据文档,数组长度必须只是一个正的32位整数,但显然这并不是唯一需要注意的限制。
为什么在这种情况下内存不足?
嗯,你知道,这マy内存不足 – sehe
其他数据结构(如List)会动态分配内存,虽然这可能会有一些性能上的缺点,但可以避免声明时内存不足。是否有理由声明如此庞大的阵列? (我应该说'动态调整大小'而不是分配) –
Charleh
@sehe - 内存可用,但事实证明硬编码[2GB限制对象大小](http://stackoverflow.com/a/13728766/426379) 。 – Saul