平成31年度 春期 応用情報技術者試験 午前 問17
プログラムの実行時に利用される記憶領域にスタック領域とヒープ領域がある。それらの領域に関する記述のうち、適切なものはどれか。
キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:ア
-
ア: サブルーチンからの戻り番地の退避にはスタック領域が使用され、割り当てと解放の順序に関連がないデータにはヒープ領域が使用される。
正しい。スタック領域はLIFO(後入れ先出し)の順序で管理され、関数の呼び出し時に使用されます。一方、ヒープ領域は動的にメモリを割り当て、自由な順序で解放されます。 -
イ: スタック領域には未使用領域が存在するが、ヒープ領域には未使用領域は存在しない。
誤り。ヒープ領域には未使用領域が存在し、必要に応じて動的に割り当てられます。 -
ウ: ヒープ領域はスタック領域の予備領域であり、スタック領域が一杯になった場合にヒープ領域が動的に使用される。
誤り。ヒープ領域とスタック領域は独立しており、スタックが一杯になってもヒープが自動で補助するわけではありません。 -
エ: ヒープ領域も構造的にはスタックと同じプッシュとポップの操作によって、データの格納と取出しを行う。
誤り。ヒープ領域はスタックのような順序管理ではなく、動的なメモリ割り当てを行います。プッシュやポップの概念はありません。
答え
ア: サブルーチンからの戻り番地の退避にはスタック領域が使用され、割り当てと解放の順序に関連がないデータにはヒープ領域が使用される。
出典:平成31年度 春期 応用情報技術者試験 午前 問17