通知
すべてクリア
Topic starter
2002年12月18日 6:45 PM
すいませんが、教えて下さい。
new演算子でメモリを確保に成功したか、失敗したかをチェックして、
失敗した時は処理を中断したいのですが、どうやって失敗したかを
判断すればいいのか、わかりません。わかる方教えて下さい。
2002年12月18日 6:49 PM
new が返す値で失敗したか判断できませんか?
2002年12月18日 7:08 PM
CMemoryException
2002年12月18日 7:35 PM
bad_alloc例外が飛んでくる。
ただし,VC++.NET以降でISO C++のヘッダをインクルード時……だったと思う。
2002年12月18日 9:07 PM
古いC++の仕様を使っているタイプだと
char* pDump = new char[0xFFFFFFFF];
として、newを失敗すると pDump に NULL が返ります。
新しいC++の仕様だと
try()
{
char* pDump = new char[0xFFFFFFFF];
}
catch(std::bad_alloc)
{
// エラー処理
}
と例外処理をする場合の2つあります。
# 開発環境をお書きになっていないでどちらになるか
# どうかはわかりませんけど
2003年1月1日 8:26 AM
>>2で分かるようなら質問しないだろ。