gpt4 book ai didi

c# - 为什么 int 数组的最大大小小于 Int32.MaxValue?

转载 作者:行者123 更新时间:2023-12-05 08:13:07 27 4
gpt4 key购买 nike

<分区>

尽管this post says it should work ,如果您创建一个大小为 Int32.MaxValue 的 int 数组,它会抛出一个 OutOfMemoryException: Array dimensions exceeded supported range.

根据我的测试,数组可以初始化的最大大小似乎是 Int32.MaxValue - 1048576 (2,146,435,071)。 1048576 是 2^20。所以只有这个有效:

var maxSizeOfIntArray = Int32.MaxValue - 1048576;
var array = new int[maxSizeOfIntArray];

有人知道为什么吗?有没有办法创建更大的整数数组?

PS:我需要使用数组而不是列表,因为 Math.Net 库只返回随机数集的数组,这些随机数是加密安全的伪随机数生成器

是的,我看过其他链接的问题,但它们不正确,因为这些问题说最大的大小是 Int32.MaxValue,这与我的计算机允许我做的不一样

是的,我知道数组的大小将是 8GB,我需要生成一个包含数十亿行的数据集,以便使用更难的测试套件来测试随机性

我还尝试了创建 BigArray<T> 的选项但 C# 似乎不再支持它。我找到了它的一个实现,但它在索引 524287 处抛出了 IndexOutOfRangeException,即使我将数组大小设置为 300 万。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com