私はLinux上でのメモリ条件のうち、約読んでいると、manページから次の段落は私が考えていました:デフォルトではLinuxの楽観的なmalloc:メモリ不足時にnewが常にスローされますか?
、Linuxは楽観的メモリ配置戦略を用いています。つまり、malloc()がNULL以外の値を返すと、メモリが実際に利用可能であるという保証はありません。これは本当に悪いバグです。システムのメモリが不足していると判明した場合、悪名高いOOMキラーによって1つ以上のプロセスが強制終了されます。 [...]
オペレータの新しい実装がある時点でmallocを呼び出してしまうことを考えれば、実際にLinuxで新しいことが保証されるのでしょうか?存在しない場合、どうやらこれは明らかに検出不能なエラー状況を処理しますか?
今すぐご覧ください。しないでください。あなたが何を投げているのか、誰がポインターを受けているのか、また誰がOOMを殺したのか、なぜそれをコントロールすることはできないのですか?それはあなた次第ではありません。それはただのLinuxです。 –
@ジョナサン・レフラー:タイトルを「いつも」に変更しました。新しいものが正常に返されても、使用可能なメモリがない場合は、C++標準に準拠していません。そういう意味では、本当に「新しいことはいつもスローされますか?または、「新しいことは投げられないだろうか? 「新しいことは今までに投げつけませんか?」 (私はどんなつま先を踏みたいとは思わないが...誰かが私が間違っていると思うかどうかを知らせる...) –
答えてくれてありがとう! – rpg