必ず受かる情報処理技術者試験

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. 応用情報技術者
  3. 平成21年度春季問題一覧
  4. 平成21年度春季問題18-解答・解説-分析

平成21年度春季問題

問題18

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

サブルーチンからの戻り番地の退避にはスタック領域が、割当てと解放の順序に関係のないデータにはヒープ領域が使用される。
スタック領域には未使用領域が存在するが、ヒープ領域には未使用領域は存在しない。
ヒープ領域はスタック領域の予備領域であり、スタック領域がいっぱいになった場合にヒープ領域が動的に使用される。
ヒープ領域も構造的にはスタックと同じプッシュとポップの操作によって、データの格納と取出しを行う。

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

サブルーチンからの戻り番地の退避にはスタック領域が、割当てと解放の順序に関係のないデータにはヒープ領域が使用される。
スタック領域には未使用領域が存在するが、ヒープ領域には未使用領域は存在しない。
ヒープ領域はスタック領域の予備領域であり、スタック領域がいっぱいになった場合にヒープ領域が動的に使用される。
ヒープ領域も構造的にはスタックと同じプッシュとポップの操作によって、データの格納と取出しを行う。

解答:ア

<解説>

スタック領域
自動変数、関数の引数や戻り値などを一時的に保存するための領域。後入れ先出し(LIFO:Last-In First-Out、FILO:First-In Last-Out)の構造を採用している。
ヒープ領域
使うときに確保し、使い終わったら解放するための領域。
C言語の静的変数や配列の割当てなど解放の解放の順序に関係のないデータが使用される。
サブルーチンからの戻り番地の退避にはスタック領域が、割当てと解放の順序に関係のないデータにはヒープ領域が使用される。
× スタック領域,ヒープ領域も常にすべての領域を使用しているわけではない。したがって、未使用領域は存在する。
× ヒープ領域とスタック領域は独立した領域である。したがって、領域を互いに融通しあうことはない。
× ヒープ領域には、プッシュ操作やポップ操作は用いない。ヒープ領域の格納と取出しは変数名を通じていつでも直接的に行なうことができる。