スタックオーバーフロー
読み:スタックアンダーフロー
外語:stack overflow
プログラム
の
バグ
の一つ。スタック溢れ。
目次
概要
特徴
主な発生原因
解決方法
概要
スタック
領域の大きさには限りがあるが、その限度を超えてスタックを利用しようとすること。
この場合、スタック領域として定義された範囲外への書き込みが生じるため、
バッファーオーバーフロー
と同様の現象や問題を生じさせる。
特徴
主な発生原因
再帰
呼び出しが
無限ループ
に陥ってしまった
再帰呼び出しが極端に深い
スタックに極端に大きな
ワークエリア
を展開した (巨大な
配列型
を作成するなど)
解決方法
バグの修正
アルゴリズム
を改良し再帰呼び出しをやめる
ワークエリアが大きくなる場合は
ヒープ
を利用する (Cなら
malloc
、C++なら
new
や
std::vector
を使う)
再検索