メモリを確保に失敗した時 – プログラミング – Home

メモリを確保に失敗した時
 
通知
すべてクリア

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


ひかる
 ひかる
(@ひかる)
ゲスト
結合: 22年前
投稿: 5
Topic starter  

すいませんが、教えて下さい。

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

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

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


引用解決済
トピックタグ
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

new が返す値で失敗したか判断できませんか?


返信引用
不良PG
 不良PG
(@不良PG)
ゲスト
結合: 23年前
投稿: 188
 

CMemoryException


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 24年前
投稿: 252
 

bad_alloc例外が飛んでくる。
ただし,VC++.NET以降でISO C++のヘッダをインクルード時……だったと思う。


返信引用
Joan
 Joan
(@Joan)
ゲスト
結合: 23年前
投稿: 42
 

古いC++の仕様を使っているタイプだと

char* pDump = new char[0xFFFFFFFF];

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

新しいC++の仕様だと

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

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

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


返信引用
apo
 apo
(@apo)
ゲスト
結合: 22年前
投稿: 2
 

>>2で分かるようなら質問しないだろ。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました