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

平成28年度 春期 午前Ⅱ 問24

実装・構築

スタックに関する問題

C言語で作成されたプログラム全体で使用するスタックフレームのサイズが,確保したサイズ内に収まっていることを検証したい。各関数が使用するスタックフレームのサイズ情報に加え,必要となる情報はどれか。

答えと解説を見る

✓ これが正解ウ各関数の呼出し関係(呼出しツリー)

解説

最も深い呼出しの経路を求めるため、関数の呼出し関係が必要です。

スタックフレームは関数が呼ばれるたびにスタックに積まれ、その関数から戻ると取り除かれます。見分ける軸は、同時にスタックに積まれるフレームの量を決めるものは何かです。ある関数の中で別の関数を呼ぶと、呼んだ側のフレームを残したまま、呼ばれた側のフレームが上に積まれます。したがって、スタックの使用量が最大になるのは、呼出しが最も深くなる経路をたどったときです。各関数のフレームの大きさに加え、どの関数がどの関数を呼ぶかという呼出し関係があれば、経路ごとのフレームの合計を求め、その最大値を確保したサイズと比べられます。大きさは関数ごとの情報、積み重なり方は呼出し関係、と分けて考えると選べます。

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

出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問24

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