スタックフレーム 【stack frame】

概要

スタックフレーム(stack frame)とは、コンピュータプログラム実行時に用いられるデータ構造の一つで、関数などを呼び出す際に呼び出し元の情報や引き渡す引数などを一時的に保管しておくためのもの。コールスタックに記録される。

プログラム実行される際、メインメモリから一定の容量が「コールスタック」(call stack)と呼ばれる領域として確保される。関数などの呼び出しがわれると、呼び出し側の実行状態をスタックに一時保管し、呼び出しが終了すると保管された内容を取り出して呼び出し前の状態が復元される。

呼び出し側がスタックに記録するひとまとまりのデータ構造をスタックフレームという。項目や形式はCPUオペレーティングシステムOS)の種類、プログラミング言語などにより異なるが、終了時に戻るべきメモリ上の実行位置(リターンアドレス)や、呼び出し側が保持していたレジスタなどの情報で構成される。呼び出し側から引き渡す引数の内容などを入れる場合もある。

呼び出し先の関数などがさらに別の関数などを呼び出すと、スタックの末尾にスタックフレームが追加されていく。スタックの容量には限りがあるため、何重にも次々に関数を呼び出していくと容量を使い果たしてそれ以上スタックフレームを追加できなくなり、「スタックオーバーフロー」と呼ばれる実行時エラーとなって異常終了する。

(2024.2.8更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる