以下の内容はhttps://toburau.hatenablog.jp/entry/20071025/1193330692より取得しました。


deleteを使うときのマクロ

DirectXのサンプルを見ていたら、DXUT.hに確保したメモリを安全に解放するためのマクロがあったので引用。

#ifndef SAFE_DELETE
#define SAFE_DELETE(p)       { if (p) { delete (p);     (p)=NULL; } }
#endif    
#ifndef SAFE_DELETE_ARRAY
#define SAFE_DELETE_ARRAY(p) { if (p) { delete[] (p);   (p)=NULL; } }
#endif    
#ifndef SAFE_RELEASE
#define SAFE_RELEASE(p)      { if (p) { (p)->Release(); (p)=NULL; } }
#endif

SAFE_RELEASEはインターフェイスの参照カウンタを減少させるもの。カウンタが0になったら解放される。


ポインタがNULLじゃないかチェックしてからdeleteしてポインタにNULLを入れるというのをよく書いていた。たしかにマクロにすればいいじゃん。
SAFEという名前が付いているけど、やっぱり自分で注意して使わないといけない。配列で確保していたポインタを解放するのにSAFE_DELETE()を使ったら駄目。




以上の内容はhttps://toburau.hatenablog.jp/entry/20071025/1193330692より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14