FE SUBJECT A
基本情報技術者 科目Aの問題解説:メモリリークの説明はどれか。
問題
メモリリークの説明はどれか。
- ア メモリの物理的な故障
- イ プログラムが確保したメモリ領域を解放せず、利用可能なメモリが徐々に減少する現象(正解)
- ウ メモリの内容が外部に漏洩するセキュリティ上の問題
- エ メモリへのアクセス速度が低下する現象
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目A範囲
正解と解説
正解:プログラムが確保したメモリ領域を解放せず、利用可能なメモリが徐々に減少する現象
メモリリークとは:正解はイです。メモリリークは、プログラムが確保したメモリを不要になっても解放しないため、利用可能なメモリが徐々に減っていく不具合です。短時間の実行では目立たなくても、サーバのように長時間動き続けるプログラムでは、応答遅延や異常終了の原因になります。
紛らわしい選択肢:ウは「情報漏えい」という意味では言葉が似ていますが、メモリリークは通常、メモリ内容が外部に漏れることではなく、メモリ資源を解放し忘れることを指します。アは物理故障、エはアクセス性能低下の説明であり、メモリ領域の解放漏れとは別物と覚えておくとよいでしょう。
なぜ起こるか:C言語のように手動でメモリを管理する場合、malloc()で確保した領域をfree()し忘れると発生します。JavaやPythonのようにガベージコレクションを備えた言語でも、不要になったオブジェクトへの参照を保持し続けると回収されず、同様にメモリリークが起こり得ます。
他の選択肢はなぜ違う?
- ア物理的な故障はハードウェア障害の話。
- ウ情報漏えいの意味ではない。『リーク』の語感に引っ張られないこと。
- エアクセス速度の低下でもない。空きメモリが減っていく現象。
この問題について
IPAが公開するシラバス・試験範囲・公開問題の出題形式を参考にした独自作成問題。公式問題・過去問題の転載ではありません。
公式試験問題、過去問題、公式サンプル問題、市販教材の問題文を転載したものではありません。