在32位操作系统中声明数组2 ^ 32大小

时间:2014-09-06 19:48:00

标签: c# hash

我想在32位操作系统上为整数哈希表声明数组2 ^ 32大小。请问我该怎么办? 它给了我内存异常。

1 个答案:

答案 0 :(得分:2)

你根本无法做到这一点。在32位CLR中,所有对象的大小必须小于2GB。

即使在64位CLR中,您也必须指定一个特殊标志来启用更大的数组(<gcAllowVeryLargeObjects>) - 如果您的数组是一个整数数组,那么您实际上要求的是16GB。您似乎不太可能在32位操作系统上拥有那么多物理内存。

你可以通过制作一个符合逻辑的&#34;来在一定程度上解决这个问题。数组由多个较小的数组组成,但我很少将其视为一个好主意。基本上,您应该重新设计或使用更适合您要求的操作系统。我怀疑重新设计可能是最好的方法。