過去問解きまくり研究所 ホーム

平成31年度 春期 午前 問17

ソフトウェア

スタック領域に関する問題

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

答えと解説を見る

✓ これが正解アサブルーチンからの戻り番地の退避にはスタック領域が使用され,割当てと解放の順序に関連がないデータの格納にはヒープ領域が使用される。

解説

戻り番地はスタック、順不同のデータはヒープに置きます。

スタック領域は後入れ先出しの規律で使う場所で、サブルーチンの呼び出しに伴う戻り番地や、その関数の中だけで使うローカルな値を積み上げるのに向いています。関数から戻るときには積んだ順の逆で取り出せるので、記憶の管理を簡単に保てます。一方のヒープ領域は、確保と解放の順序に決まりがなく、必要になった時点で任意の大きさを取り、不要になった時点で任意の順で返す使い方に応えられる場所です。プログラムから明示的に確保する動的なデータや、寿命の長い可変長のデータを置く役目を担います。設問の一文は、この二つの領域の役割の違いをそのまま述べたものです。

ほかの選択肢はなぜ違うのか

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

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)