首页 新闻 会员 周边 捐助

Array.Length 最大值

0
悬赏园豆:20 [已解决问题] 解决于 2010-08-11 11:02

byte[] b = new byte[int.MaxValue]; 这句会出错,数组对象最大长度是多少?

luotong的主页 luotong | 初学一级 | 园豆:4
提问于:2010-08-04 15:41
< >
分享
最佳答案
0

应该是内存不够,32 位操作系统无法分配2G内存给数组。

收获园豆:5
eaglet | 专家六级 |园豆:17139 | 2010-08-05 07:37
其他回答(5)
0

报的什么错?是不是内存不够了?

灰灰狼 | 园豆:5 (初学一级) | 2010-08-04 16:01
0
收获园豆:5
Astar | 园豆:40805 (高人七级) | 2010-08-04 16:05
0

是的,数组没有最大限制,主要看你机器内存能承受多大

收获园豆:5
风遥 | 园豆:10 (初学一级) | 2010-08-04 17:25
0

byte[] b = new byte[int.MaxValue-56]; //windows 7 64位,4G内存

 

byte[] b = new byte[int.MaxValue/2]; //windows 2003  sp2 32位,4G内存

风浪 | 园豆:2996 (老鸟四级) | 2010-08-04 17:37
0

        [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
        public static void Copy(Array sourceArray, long sourceIndex, Array destinationArray, long destinationIndex, long length)
        {
            if (sourceIndex > Int32.MaxValue || sourceIndex < Int32.MinValue)
                throw new ArgumentOutOfRangeException("sourceIndex", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
            if (destinationIndex > Int32.MaxValue || destinationIndex < Int32.MinValue)
                throw new ArgumentOutOfRangeException("destinationIndex", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));
            if (length > Int32.MaxValue || length < Int32.MinValue)
                throw new ArgumentOutOfRangeException("length", Environment.GetResourceString("ArgumentOutOfRange_HugeArrayNotSupported"));

            Array.Copy(sourceArray, (int) sourceIndex, destinationArray, (int) destinationIndex, (int) length);
        }

这是数组的源码,你看一下,详细的可以看我的随笔,有什么问题再问我

收获园豆:5
倪大虾 | 园豆:275 (菜鸟二级) | 2010-08-05 20:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册