プログラムの実行時に利用される記憶領域にスタック領域とヒープ領域がある。それらの領域に関する記述のうち,適切なものはどれか。
平成26年度 秋期 応用情報技術者 問15
テクノロジ系
正解と解説
正解 ア
スタック領域は後入れ先出しで戻り番地などの退避に使います。ヒープ領域は割当てと解放の順序が自由なデータの格納に使います。
スタック領域は、LIFO(Last In First Out)で領域を確保・解放する記憶領域です。サブルーチン呼出し時の戻り番地、引数、局所変数の格納に使います。ヒープ領域は、プログラムが実行時に任意の順序で確保と解放を行う記憶領域です。malloc や new で動的に確保するデータに使います。決め手は「割当てと解放の順序に関連がない」という言葉で、これがヒープ領域の性質に当たります。
イ:ヒープ領域にも未使用領域は存在します。確保と解放を繰り返すと、未使用の断片が散らばる断片化(フラグメンテーション)が起きます。
ウ:ヒープ領域はスタック領域の予備ではなく、用途の異なる独立した領域です。スタック領域が一杯になるとスタックオーバーフローになります。
エ:プッシュとポップで出し入れするのはスタックの操作です。ヒープ領域は任意の位置を任意の順序で確保・解放します。
出典:平成26年度 秋期 応用情報技術者試験 問15
全年度から出題。10問で実力を判定します。登録不要。
出典:平成26年度 秋期 応用情報技術者試験 問15(独立行政法人情報処理推進機構)
解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方