Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Heap and Handle allocation happens whilst calling malloc, new, sysallocatestring...
If we forget to release it by calling free, delete, sysfreestring, we experiences the memory leak.
There are several ways to avoid the leaking.
1. Use MS built-in detection API
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF )
2. Mark the memory
#define HEAPLEAK(k) k = 0xCACF0000 + __LINE__ // CACF: check allocated check free + line number
3. Hook into the allocate and free functions
_CrtSetAllocHook(pfnHook)
hook to: calloc, malloc, realloc, free, memcpy, strcpy ...
4. Hook from the system level - what NuMega have done before...