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

令和4年度 秋期 午前Ⅱ 問21

実装・構築

スタックに関する問題

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

答えと解説を見る

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

解説

呼出しの連なりで積み重なる量を求めるため、呼出しツリーが必要です。

C言語の関数は、呼び出されるたびに自分のスタックフレームをスタックに積み、戻るときに取り除きます。関数Aが関数Bを呼び、BがさらにCを呼ぶと、A、B、Cのスタックフレームが同時に積み重なります。そのため、プログラム全体で必要なスタックの大きさは、呼出しの経路ごとに各関数のスタックフレームのサイズを足し合わせ、その中で最も大きい経路で決まります。この経路を知るには、どの関数がどの関数を呼ぶかという呼出し関係、つまり呼出しツリーが必要です。各関数のサイズに呼出しの経路を組み合わせて最大値を求める、という考え方がポイントです。

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

この問題の用語

出典:令和4年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問21

同じ用語が出る問題

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