メモリリーク
プログラミング言語によってはメモリ解放をコンピューター(仮想マシン、フレームワークなどのシステム側)に委ねるガベージコレクションが取り入れられており、メモリリークが起きにくくなっている。ガベージコレクションを言語組み込みの機能として持つ言語には、LispやJava、C#/VB.NETなどの.NET言語全般、Objective-C(バージョン2.0以降)、PHP、Pythonなどがある。
一方でC言語のようなガベージコレクションが組み込まれていないプログラミング言語では、メモリリークが起きないように注意深くプログラムを設計・実装する必要がある。C++においてはガベージコレクションこそないものの、デストラクタ機能を活用したRAIIにより、所有権や参照カウントなどの仕組みを実現し、メモリ寿命管理を自動化・簡素化することができる。これは後述のリソースリークにも適用できる。ただし、参照カウント方式は循環参照によるメモリリークを回避することができないという欠点も持っており、必要に応じて弱い参照を併用する必要がある。Pythonは循環参照問題に関して、参照カウントのほかに世代別ガベージコレクションを補助的に利用することで対処している。