私は球面を細かく分割して球面ウェーブレットアルゴリズムを実装しようとしています。私は8GBのメモリを利用できますが、20面体の場合、9分割レベルに制限されています。私の問題は、メモリが十分にある場合でも私の球を構築している間、メモリ不足とbad_alloc例外です。私はたくさんのメモリを持っていますが、bad_alloc
私は、アドレス可能なメモリポインタを使い果たしてしまい、Win32アプリケーションで4GBという限界に達すると思っていました。しかし、あなたが見ることができるように、私は約1.9GBで限界に達しました。
このエラーは、使用しているシステムとは関係ありません。
誰もが起こったとどのようにこの種の問題に対処するために何を知っていますか?
これは、オブジェクトが割り当てようとしていた大きさによって異なります。オブジェクトが連続したメモリ(例えば、 'std :: vector')を使用する場合、利用可能なメモリの*連続ブロックが必要であることに注意してください。そのため、使用可能なメモリが1 GBあり、0.75 GBのブロックを要求したとしても、それは連続した* 0.75 GBのブロックが使用可能であるという意味ではありません。 – CoryKramer
related/dupe:http://stackoverflow.com/questions/5686459/what-is-the-maximum-memory-available-to-a-c-application-on-32-bit-windows – NathanOliver