以前のプログラムでは、次のコードを使用して、通常は代替案を考えずに、メモリ割り当ての失敗をチェックしました。
int* p_int = new int[10];
if(!p_int)
{
// We failed, so exit
return EXIT_FAILURE;
}
この方法については、こちらにも記載されています。
ここで構文のリファレンスを見つけました:
p_int = (nothrow) new int[10];
nothrow
プログラマーがnew への「引数」を含めない場合、チェックnullptr
が無効になることを示唆していますか? これは正しいです?それともOS依存?
私が理解しているように、これに関連するオーバーヘッドのために、実際にブロックから回復できない限りnew
、ブロックを配置してもほとんど意味がありません。try-catch
これも正しいですか?