首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >byte[]的最大长度?

byte[]的最大长度?
EN

Stack Overflow用户
提问于 2010-10-16 00:45:40
回答 3查看 55.4K关注 0票数 24

我正在尝试创建一个长度为UInt32.MaxValuebyte数组。这个数组本质上是一个小的(Ish)内存数据库:

代码语言:javascript
复制
byte[] countryCodes = new byte[UInt32.MaxValue];

然而,在我的机器上,在运行时,我得到了一个带有“算术运算导致溢出”的System.OverflowException

怎么回事?我需要使用unsafe块和malloc吗?我如何在C#中做到这一点呢?

EN

回答 3

Stack Overflow用户

发布于 2013-08-21 08:31:31

在.NET 4.5上,字节数组的最大可实例化长度是: 2147483591,比int.MaxValue少56。通过以下方式找到:

代码语言:javascript
复制
for (int i = int.MaxValue; i > 0; i--)
{
    try
    {
        byte[] b = new byte[i];
        Console.Out.WriteLine("MaxValue: " + i);
        Environment.Exit(0);
    }
    catch (Exception ignored)
    {}
}
票数 12
EN

Stack Overflow用户

发布于 2018-12-29 14:29:13

字节数组的最大长度为: 2130702268。例如:

代码语言:javascript
复制
var countryCodes = new byte[2130702268];
票数 3
EN

Stack Overflow用户

发布于 2010-10-16 01:11:30

我一开始就不会这么做。为什么要为这个内存中的数据库预留所有内存呢?难道你不想要一个数据结构,它的大小随着你的发展而递增(例如List<int>)吗?或者(如果愿意)使用内存中的数据库,如sqlite

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3944320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档