オーバーフロー
入れ過ぎちゃったよ
あふれちゃったよ
簡単に書くよ
オーバーフロー(英:overflow)とは
「いやんっ、あふれちゃった(*ノノ)」な状態のこと。
もう少し真面目ぶって書くと
「これより大きい数字は入れられないよ」な限界よりも大きい数字を入れようとして、おかしな状態になっちゃうこと
です。
あるいは
「これくらい入るかな~」と思って確保していた領域よりもたくさん入れちゃって、入りきらなかった状態のこと
です。
詳しく書くよ
サクっと一言で説明すると
想定している量よりも多くて、あふれちゃった状態
が「オーバーフロー」です。
主にプログラミングの分野で登場します。
例えば、そうですね。
ここに数字が入る箱が ありました。
この箱は2桁の数字が入る箱です。
0~99の数字が入ります。
ところがどっこい、です。
間抜けなピヨ太君が「10×10」の計算結果をこの箱に入れようとしました。
「10×10」の計算結果は「100」です。
「100」は3桁です。
2桁の数字が入る箱には入りきりません。
案の定、箱に穴が開いてあふれてしまいました。
このような状態がオーバーフローです。
「桁あふれ」と表現されることも あります。
数値型の変数(プログラミング世界における数字を入れておく箱)には最大値があります。
「これより大きい数字は入れられないよ」な限界があるのです。
プログラミング言語や型の種類によって限界の値は変わりますけどね。
いずれにせよ、何らかの限界はあります。
オーバーフローは、その限界よりも大きな値を箱に入れようとしたときに起こる現象です。
……というのが本来の意味のオーバーフローです。
実はプログラミングの世界には「バッファオーバーフロー」という用語があります。
この「バッファオーバーフロー」の省略表現として「オーバーフロー」と言っている場合があります。
バッファは「データを一時的に溜めておく場所」です。
バッファオーバーフローは
バッファ(データを溜めておく場所)がオーバーフローした(あふれた)状態
を指す用語です。
せっかくなので、バッファオーバーフローについて、もう少し詳しく説明しておきます。
プログラミングでは変数を扱います。
変数は「値を入れておく箱」です。
中に値を入れます。
この変数ですが、実際にはメモリ上に場所を確保します。
メモリの上に「ここからここまで、この変数が使うから」と値を入れておくための領域を確保するのです。
よく分からない方は花見の場所取りをイメージしてください。
場所を取るために下に敷いたブルーシートが変数です。
その上に座る上司や先輩、花見の参加者が値です。
花見の参加者が多くなると、ブルーシートに座りきれません。
ブルーシートの外にはみ出してしまうでしょう。
そうすると、隣で花見をしている人たちの迷惑になってしまうかもしれませんね。
コンピュータの世界も同じです。
例えば、3文字まで入る変数をメモリ上に確保したとしましょう。
そこに4文字以上入れると、入りきらない分があふれてしまいます。
もし隣の領域を他の変数が使っていたら、どうでしょう?
他の変数の値を書き換えてしまいますね。
これは本来想定していない事態です。
困ったことになる可能性が高いでしょう。
このような
元々確保していた領域よりも大きい値を入れて、あふれちゃった状態
がバッファオーバーフローです。
そして「バッファオーバフロー」の省略表現として「オーバフロー」と言っている場合があります。
とはいえ、似たようなものですけどね。
「オーバーフロー」と出てきたら
許容されている量よりもたくさん入れちゃって、あふれた状態
と読み替えてください。
それで何となくの意味は、つかめると思います。
一言でまとめるよ
まぁ「オーバーフロー」って単語が出てきたら「あふれちゃったんだな~」と お考えください。






