#include <cstdlib> #include <new> #include <memory> #include <crtdbg.h> #define _CRTDBG_MAP_ALLOC #define new ::new(_NORMAL_BLOCK, __FILE__, __LINE__) void main() { int *i = new int; _CrtDumpMemoryLeaks(); return; }
これをデバックモードで実行すると
Detected memory leaks! Dumping objects -> c:\users\documents\source.cpp(13) : {170} normal block at 0x00000200AD5747B0, 4 bytes long. Data: < > CD CD CD CD Object dump complete.
ちゃんとint *i = new int;
である13行目でエラーが出ていることが分かる。
参照