誰もが知っているように、Visual C ++ランタイムは、初期化されていない、または解放されたばかりのメモリブロックを特別な非ゼロマーカーでマークします。初期化されていないすべてのメモリを手動でゼロに設定せずに、この動作を完全に無効にする方法はありますか?それは私の有効なnullではないチェックで大混乱を引き起こしています0xFEEEFEEE != 0
。
うーん、多分私はもう少しよく説明する必要があります。私は(newを介して)変数を作成して初期化しますが、それはすべてうまくいきます。(削除を介して)解放すると、ポインターが。0xFEEEFEEE
の代わりにに設定されますNULL
。の適切なチェックを挿入するとNULL
、独自のメモリを管理するすべての優れたプログラムがそうであるように、問題なくチェックに0xFEEEFEEE
合格すると問題が発生します。NULL
削除するときにすべてのポインタを手動で設定する以外NULL
に、メモリがすでに解放されたことを検出するための良い方法はありますか?Boostを使用するのはそれだけなので、Boostを使用したくないのは、オーバーヘッドが必要ないという理由だけです。