処理の結果が、それを格納する領域に収まりきらずにあふれることです。
算術演算においては、計算結果が、メモリやレジスタといった格納先が表現できる限界を越えてしまうことを指します。これは算術オーバーフローとも呼ばれます。
また、用意しておいた領域(バッファ)の大きさを上回る量のデータを書き込んでしまい、領域の範囲外を不正に書き換えてしまう場合もオーバーフローです。こちらは特に、バッファオーバーフローと呼びます。同様の現象がコールスタックで起こると、スタックオーバーフローと呼ばれます。
いずれにしても、オーバーフローが発生したときには、少なくとも正しい結果を得ることはできません。それを無視して処理を続行させるケースもあり得ますが(算術オーバーフローで、収まりきらなかった上位桁を単に無視するだけで済ませるなど)、エラーや例外として扱うべき場合もあります。たとえば、バッファオーバーフローでは、メモリ上で隣接するところにあった無関係のデータを上書きして破壊している恐れがあり、重大な問題につながる可能性があります。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |