2012-03-30 34 views
1

std::bitsetには最大要素数がありますか?std :: bitsetには最大要素数がありますか?

私のコード(VC++ 2010)では、1<<20はスタックオーバーフローでクラッシュしますが、1<<19が機能します。私の知る限り、これはbitsetでサポートされている要素の最大数とは何の関係もありませんが、割り当て可能なメモリの量に関係している参照として

(私は巨大な入力を扱っています。)

+0

関連[C++で大きなビットセットを定義](http://stackoverflow.com/questions/5780112/define-a-large-bitset-in-c) –

答えて

1

スタックに。 VSでは通常、スタックに割り当てることができる最大メモリは1 MBであり、この制限を超えるとスタックオーバーフローが発生します。この量以上のメモリが必要な場合は、スタックに割り当てるのではなく、newを使用してヒープからメモリを割り当てることをお勧めします。このような場合、メモリ割り当ては、newが本当にメモリ不足の場合にのみ失敗します。

+2

大きなオブジェクトを静的にすることは、通常動作します。ほとんどのオペレーティングシステムは、大きな実行可能なバイナリイメージ/グローバルオブジェクトをうまく扱うことができ、ヒープに頼らないことを好みます。 – Potatoswatter

関連する問題