メモリリークとは?めもりりーく
メモリリークとは、プログラムが動的に確保した主記憶を、使い終わった後に解放し忘れる不具合。使われない領域が占有されたまま残り、プログラムが動き続けるほど空きが減って、やがて性能低下や異常終了に至る。
最終更新:2026-10-10
この語が出る過去問を解く →背景
プログラムは実行中に必要に応じて主記憶を借り(動的確保)、使い終わったら返す。返し忘れが1回あたりわずかでも、長時間動くサーバでは要求のたびに積み上がるため、短いテストでは見つからず、稼働を続けて初めて表に出る。
具体例
Oracle の Java は、不要になった領域を処理系が自動で回収するガーベジコレクションを備えるため、解放忘れによるメモリリークを起こしにくい。ただし、使い終わったデータを一覧に入れたまま参照し続けると回収されず、Javaでもメモリリークは起こる。
試験での引っ掛け
メモリリークは「解放し忘れ」で空きが減る現象。空き領域が細切れになって大きな領域を確保できなくなるフラグメンテーション(断片化)や、確保した範囲を超えて書き込むバッファオーバフローと取り違えさせる選択肢が出る。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成30年度 秋期 基本情報技術者試験 午前 問8(IPA)解説で登場
Javaの特徴はどれか。
正解:メモリ管理のためのガーベジコレクションの機能がある。
Javaは不要になったオブジェクトの領域を処理系が自動的に回収するガーベジコレクションを備え、解放漏れによるメモリリークを起こしにくい。クラスの多重継承やポインタ演算は意図的に排除されている。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。