next up previous contents
Next: 2重解放 Up: メモリリークと2重解放 Previous: メモリリークと2重解放   Contents

メモリリーク

リークとは漏れを意味する言葉であり、 メモリリークとは動的に確保したメモリの番地を忘れてしまい、 そのメモリへアクセスできなくなることを言う。 番地を忘れてしまうと、そのメモリを解放することが出来なくなり 、 メモリ資源を食いつぶしていくことになる。

メモリリークは、動的に確保されたメモリ番地を記録したポインタが1つしかなく、 そのメモリを解放する前に、その番地を記録したポインタへ 他の番地を代入する処理を行ったときに起きる。 ポインタへ他の番地が代入されたことにより、 代入前に記録されていたメモリ番地を指し示す変数が存在しなくなり、 動的に確保されたメモリへどこからもアクセス出来なくなってしまうわけである (図9.1参照)。

Figure 9.1: メモリリークのイメージ図
\begin{figure}
\begin{center}
\epsfile{file=fig9_1.eps,height=3.5cm}
\end{center}\end{figure}



kojima hirohisa
2001-03-05