В MS VC++ можно так сделать:
Code
(ПОСЛЕ всех инклюдов)
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
(в конце программы - перед return в функции main)
_CrtDumpMemoryLeaks();
Тогда по завершению работы программы во вкладке Output->Debug будет информация об утечках памяти (если таковые есть) - сколько байт, что в них и номер строчки кода, когда эта память вылелялась. Если под линукс, то там есть замечательная прога Valgrind. Юзается примерно так:
Code
<путь>/valgrind --tool=memcheck --leak-check=yes --show-reachable=yes
./<имя исполняемого файло>
А вообще, руки надо прямые иметь :P