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