new演算子が割り当ての失敗を示す方法は以下の2通りあり、またどちらの動作を取るかはコンパイラによって異なる。
- new演算子が返されたヌルポインタを返す
- 例外(構造化された形式で管理できる実行時エラー)を生成する
#include <iostream> #include <new> using namespace std; int main() { int *p; p = new int; // intにメモリを割り当てる、割り当て失敗時は例外を投げるかもしれない // p = new(nothrow) int; // これでメモリ割り当て失敗時にNULLを返すことが保障される if (!p) { cout << "メモリ割り当て失敗.\n"; return 1; } for (*p =0; *p < 10; (*p)++) cout << *p << " "; delete p; // メモリを解放する return 0; }
最新コメント