スタックオーバーフロー

提供: MonoBook
ナビゲーションに移動 検索に移動

スタックオーバーフロー(英語:stack overflow)とは、コンピュータープログラムにおいて「スタックメモリ」と呼ばれるメモリ領域にデータがいっぱいになり入り切らない現象のことです。

スタックメモリは、主にデータを一時的に保存するために使用されるメモリ領域で、プログラム関数を呼び出すたびに、その関数の情報(戻りアドレス、ローカル変数など)を格納(スタック)します。そして関数が終了した際に、その情報はスタックメモリから削除します。

しかし、スタックメモリに格納されるデータ量が容量を超えてしまうと、スタックオーバーフローが発生します。スタックオーバーフローが発生するとプログラムが強制終了したり正常に動作しなくなるのが一般的です。

スタックオーバーフローは、主に再帰関数を多用するプログラムや、無限ループに陥るプログラムなどで発生することがあります。