Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 正在创建数组-类型为';System.OutOfMemoryException';被抛出_Arrays_Vb.net_Exception - Fatal编程技术网

Arrays 正在创建数组-类型为';System.OutOfMemoryException';被抛出

Arrays 正在创建数组-类型为';System.OutOfMemoryException';被抛出,arrays,vb.net,exception,Arrays,Vb.net,Exception,我正在使用Visual Studio 2015 VB。净。当我尝试创建以下数组时,会收到错误消息 “引发了类型为'System.OutOfMemoryException'的异常。” 当目标CPU为x86或AnyCPU时 当我将目标CPU设置为x64时,阵列创建得很好 Private maCombsNums As Integer(,,,,) .... maCombsNums = New Integer(50, 50, 50, 50, 50) {} 这是虫子吗?因为我想在32位windows系统上

我正在使用Visual Studio 2015 VB。净。当我尝试创建以下数组时,会收到错误消息

“引发了类型为'System.OutOfMemoryException'的异常。”

当目标CPU为x86或AnyCPU时

当我将目标CPU设置为x64时,阵列创建得很好

Private maCombsNums As Integer(,,,,)
....
maCombsNums = New Integer(50, 50, 50, 50, 50) {}

这是虫子吗?因为我想在32位windows系统上运行我的程序。

回答您的问题,这不是一个bug。 您需要大量内存,x64将能够提供更多内存


您可能能够为您的用例找到更好的数据结构。例如,如果数据稀疏,您可以使用查找表(
字典
),只填充您需要的内容

您正在创建一个5维数组,每个维度的长度为50。这是312.500.000个整数。我不知道为什么在x64上可以工作,为什么在x86上不能工作,但是内存不足的exeption并不少见,因为它需要1.25GB的内存。可能在32位上,它找不到如此大的连续内存区域。在以32位编译后,您可以尝试使用
editbin/LARGEADDRESSAWARE my.exe
,为您的应用程序获得高达3Gb的内存,但可能需要64位。感谢Chris的帮助,我们将尝试以32位编译应用程序