2016-05-26 19 views
1

私はVisual Studio 2015 VBを使用しています。ネット。次の配列を作成しようとすると、エラーメッセージが表示されます。配列の作成 - 'System.OutOfMemoryException'型の例外がスローされました

"'System.OutOfMemoryException'型の例外がスローされました。

ターゲットCPUがx86またはAnyCPUの場合。

ターゲットCPUをx64に設定すると、アレイは正常に作成されます。

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

これはバグですか? 32ビットWindowsシステムでプログラムを実行したいのですが。

+3

次元ごとに50の長さの5次元配列を作成しています。それは312.500.000の整数です。私はなぜx64が動作するのか、それがなぜx86上にないのか分からないが、メモリ不足の例外はまれではない。 – Aimnox

+0

1.25Gbのメモリを求めている。たぶん32ビットで、それはその大きな連続領域を見つけることができません。 32Bitでコンパイルして、アプリケーション用に3Gbのメモリを取得した後で、 'editbin/LARGEADDRESSAWARE my.exe'を使用することはできますが、おそらく64ビットが行く方法です。 –

+0

Chrisさん、お手伝いをよろしくお願いします。これを試して32ビット版のアプリケーションをコンパイルしてみましょう – Nick

答えて

3

質問した質問に答えるには、これはバグではありません。 あなたは多くのメモリを要求しており、x64はあなたにもっと多くのメモリを与えることができます。

あなたのユースケースに適したデータ構造を見つけることができます。たとえば、データが散在している場合は、ルックアップテーブル(Dictionary)を使用して、必要なものだけを取り込むことができます。

関連する問題