プログラムが確保したリソースは,利用後,適切に解放しなければならない。確保したリソースを解放し忘れると,しばしばプログラムが予期せず終了することもある。ネットワークサービスを提供するプログラムにこのような不具合があると,サービスを提供できなくなる場合がある。 リソース解放忘れでもっとも有名な問題は,やはり「メモリリーク問題」だろう(関連記事『6-5. メモリリーク』)。システムのメモリ容量は有限だ。プログラムがメモリ領域を作業用に確保したいとき,malloc( )関数によりシステムからメモリ領域を借り入れる(確保)ことができる。借り入れたメモリ領域を使って作業を済ませたなら,必ずそのメモリ領域をfree( )関数でシステムへ返却(解放)しなければならない。メモリリーク問題は,プログラムが適切にfree( )関数でメモリ領域を解放しないことにより,システムの貸し出し可能なメモリがどんどん消費