メモリを確保に失敗した時

[戻る]
ひかる 2002/12/18(水) 18:45:27
すいませんが、教えて下さい。

new演算子でメモリを確保に成功したか、失敗したかをチェックして、

失敗した時は処理を中断したいのですが、どうやって失敗したかを

判断すればいいのか、わかりません。わかる方教えて下さい。

sugar 2002/12/18(水) 18:49:26
new が返す値で失敗したか判断できませんか?

不良PG 2002/12/18(水) 19:08:48
CMemoryException

YuO [E-Mail] 2002/12/18(水) 19:35:26
bad_alloc例外が飛んでくる。
ただし,VC++.NET以降でISO C++のヘッダをインクルード時……だったと思う。

Joan 2002/12/18(水) 21:07:01
古いC++の仕様を使っているタイプだと

char* pDump = new char[0xFFFFFFFF];

として、newを失敗すると pDump に NULL が返ります。

新しいC++の仕様だと

try()
{
   char* pDump = new char[0xFFFFFFFF];
}
catch(std::bad_alloc)
{
  // エラー処理
}

と例外処理をする場合の2つあります。

# 開発環境をお書きになっていないでどちらになるか
# どうかはわかりませんけど

apo 2003/01/01(水) 08:26:29
>>2で分かるようなら質問しないだろ。

古いスレッドには追加発言できません。