私は、Visual Studio 2010 で SDL を使用してゲームに取り組んでいます_CrtDumpMemoryLeaks()
。マクロに出くわし、やってみようと思いました。呼び出す_CrtDumpMemoryLeaks()
と、メモリ リークが出力ウィンドウに出力されますが、発生した場所は表示されません。
Memory Leak Detection Enableで MSDN の記事を読みましたが、定義する_CRTDBG_MAP_ALLOC
と、問題のあるステートメントの行番号を出力する必要があると説明されています。これは私の場合には起こりません。(ただし、'new' を使用するのではなく、malloc() を直接使用すると、動作させることができました)。
コード:
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int *var = new int(5);
_CrtDumpMemoryLeaks();
return 0;
}
出力は次のとおりです。
Detected memory leaks!
Dumping objects ->
{58} normal block at 0x007D1510, 4 bytes long.
Data: < > 05 00 00 00
Object dump complete.
「new」を使用して割り当てるときに行番号を出力できない場合_CrtDumpMemoryLeaks()
は、同様の動作を実現するための他の方法を提案してください。