Хотя это не алгоритм, существует множество сторонних инструментов, которые также помогут проанализировать ваш код на предмет утечек памяти. В зависимости от размера вашего проекта, может быть неразумно вручную отслеживать все выделения.
Лично мне нравится использовать valgrind, если я нахожусь в * nix окружении.
альтернатива, позвольте вашей программе работать долго и следите за распределением памяти, используемым процессом, из топ или менеджера задач. Если он протекает, он будет постоянно расти. Если нет, он должен накачать до максимального значения, затем удерживать или колебаться между этим и более низким значением.
К сожалению, рост не обязательно означает утечку, может быть, вашей программе требуется ОЧЕНЬ много памяти.