Detecting Memory Leaks in C/C++

On Linux valgrind is about as good as it gets. The program runs your application with overridden allocation methods and will alert you to any memory that is allocated and not freed:

$ > valgrind --tool=memcheck -v --track-origins=yes ./yourApp [params] 

On windows you can leverage the crtdbg.h functions, which basically do the same as above, but require you to call _CrtDumpMemoryLeaks() when you are ready to see the report of any memory you did not dump.

Detected memory leaks!
Dumping objects ->
{18} normal block at 0x00780E80, 64 bytes long.
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
Object dump complete.