メモリリーク対策

メモリリークを検出するには_CrtDumpMemoryLeaksなどのCRTで用意された関数を用いる。
リークチェックに使う主な関数は以下

他にもリークチェックに使えそうな関数がある。

  • _CrtSetAllocHook: mallocの代わりに独自のメモリ割り当てを定義する
  • _CrtSetBreakAlloc: 任意のメモリブロックに対してmalloc直後にブレークを発生させるように設定する


上記の関数群はCRTのmalloc系関数によるメモリ割り当てを行っている場合のリークチェックに使用可能。
独自にHeapAllocやVirtualAlloc,GlobalAllocなどを行っている場合は適用できない。
また、C++のnewはVC6.0,VS2003では内部でmallocを使用しているため上記の手法を適用できる。
VS2005ではどうなっているかは調べていない。