マシンの空き容量は2 GB以上です。 アレイの最大要素数は、OS /コンピュータの機能によってのみ制限されます。 つまり、最小2 GBの配列を持つことは、2^32 -1の要素を持つことができます。 しかし、コンパイラは見逃しません。 2^32要素の配列が本当に必要な場合はどうなりますか? :) ...私は2^31-1を試してみましたが、それは動作しません OS 64ビット、6ギガバイトのメモリ、Win32コンソールアプリケーションアレイに大量のメモリを割り当てる方法は?
char * buffer = new char[2147483647]; //Microsoft C++ exception: std::bad_alloc at memory location 0x004FF998.
WIN32ではなくx64実行可能ファイルにする必要があります。 –
@PaulRまあ、なぜですか? Win32にはメモリ割り当ての制限がありますか? – Evgen8
WIN32 = 32ビットのアドレス空間で、大量の連続した割り当てに使用できるわけではありません。下記の答えを参照してください。 –