0

何年にもわたるプログラミングの後、私は常にそれをチェックしていますが、合理的なmallocまたはnewが失敗する状況はありませんでした(おそらく私のmallocが本当に合理的であるため)。

私の場合、アプリは適切なログエントリで正常に閉じる必要があります(願っています)。この場合、あなたはどうしますか?あなたのアプローチを聞くのは興味深いです-あなたはリソースを待つのですか、それとも店を閉めるのですか?

4

2 に答える 2

1

私は通常、エラーメッセージをログに記録するだけで、プログラムを可能限り適切にシャットダウンします。C ++では、catchでforを使用std::bad_allocしてこれを行いmain()ます。実行時までに、catchスタックの巻き戻しによって呼び出されたデストラクタはメモリを解放しているはずなので、ロギング自体が失敗する可能性は低くなります。ロギングが失敗する可能性をさらに減らすために、そのロギングコードでメモリ割り当てを回避します(たとえば、char *文字列ではなく文字列を使用することによって)。std::string

于 2012-01-10T12:45:53.350 に答える
0

動的割り当てが失敗した場合にできることはほとんどありません。その状況を処理するために作成された操作はほとんどありません。失敗した場合は、アプリをクラッシュさせてください。

于 2011-07-09T22:31:38.057 に答える