bad_alloc
にいくつかの負の引数を渡して、例外をテストしようとしましたnew[]
。小さな負の数を渡すと、期待どおりの結果が得られます- a bad_alloc
。ただし、 を渡す-1
と、オブジェクトが何千回も構築され (コンストラクターで静的カウンターを出力します)、アプリケーションが segfault で終了することがわかります。
new[]
は符号付き整数をにsize_t
変換します。-1
size_t
-2
maximum - 1
new[]
では、巨大な数を受け取ったときに例外をスローするのに、最大数を受け取ったときに割り当てようとするのはなぜsize_t
ですか? 1111...1
と1111...0
forはどう違いnew[]
ますか?:)
前もって感謝します!