ウカマル応用情報技術者ログイン

平成31年度 春期 応用情報技術者 問17

テクノロジ系

プログラムの実行時に利用される記憶領域にスタック領域とヒープ領域がある。それらの領域に関する記述のうち,適切なものはどれか。

選択肢
正解と解説

正解 ア

スタック領域は後入れ先出しで、サブルーチンの戻り番地の退避に使われます。ヒープ領域は、割当てと解放の順序が決まっていないデータに使われます。

スタック領域は、最後に格納したデータを最初に取り出すLIFO(Last In First Out)の構造です。サブルーチンの呼出しと復帰は入れ子になるので、戻り番地や局所変数の退避に適しています。ヒープ領域は、プログラムが実行中に必要な大きさを任意の時点で確保し、任意の時点で解放する領域です。割当てと解放の順序に関連がないので、解放後に未使用領域が点在する断片化が起こります。

イ:ヒープ領域でも、確保前の領域や解放後の領域が未使用領域として存在します。解放が順不同なので、未使用領域が細切れに散らばる断片化も起こります。

ウ:ヒープ領域は、動的に確保するデータのための独立した領域です。スタック領域が一杯になると、ヒープ領域に切り替わるのではなく、スタックオーバーフローになります。

エ:プッシュとポップで格納と取出しを行うのは、スタック領域です。ヒープ領域は任意の位置を確保・解放するので、順序に制約はありません。

出典:平成31年度 春期 応用情報技術者試験 問17

全年度から出題。10問で実力を判定します。登録不要。

出典:平成31年度 春期 応用情報技術者試験 問17(独立行政法人情報処理推進機構)

解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方