数量的调试工具用于检测不能存取的内存，从而可以防止记忆体泄漏问题，如、、Valgrind、及都是为C／C++程式设计亦较受欢迎的记忆体除错工具。垃圾回收则可以应用到任何程式语言，而C／C++也有此类函式库。提供自动记忆体管理的编程语言如Java、C、C#、VB.NET以及LISP，都不能避免记忆体泄漏。例如，程式会把项目加入至列表，但在完成时没有移除，如同人把物件丢到一堆物品中或放到抽屉内，但后来忘记取走这件物品一样。记忆体管理器不能判断项目是否将再被存取，除非程式作出一些指示表明不会再被存取。譬如