JavaA2Z

KAB-studio > プログラミング > JavaA2Z > バッファオーバーランとは

バッファオーバーラン

日本語 文字配列走り過ぎ
英語 buffer overrun
ふりがな ばっふぁおーばーらん
フリガナ バッファオーバーラン

解説

文字列を格納する配列を越えて文字を書き込もうとすること。
文字列配列で格納している場合に、その配列のサイズを越えたインデックスナンバーを指定して格納しようとすること。ArrayIndexOutOfBoundsException例外投げられる
文字列配列を「バッファ」と呼び、その範囲を超えるため「バッファオーバーラン」と呼ばれる。
 
Java以外の言語では、このバッファオーバーランによって「バッファオーバーフロー」が発生させられるため、バッファオーバーフローの原因、もしくは同義語として使われる。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // たとえばchar型配列で4文字の場合。
            char[] chars = new char[4];

            // ここに、1文字ずつ書き込み、サイズを越えて書き込もうと
            // することでバッファオーバーランしてみます。

            String string = "あいうえお";
            // 1文字ずつコピーします。
            // 配列のサイズより1文字多いとこがポイント。
            forint iF1 = 0; iF1 < string.length(); ++iF1 )
            {
                chars[iF1] = string.charAt( iF1 );
            }
        }
        catch( ArrayIndexOutOfBoundsException e )
        {
            e.printStackTrace();
            // java.lang.ArrayIndexOutOfBoundsException: 4
            //     at Sample.main(Sample.java:19)
        }

        // このように例外が発生します。
        // もし例外が発生しなかったら、バッファオーバーフローが
        // 可能になってしまいます。
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // たとえばchar型配列で4文字の場合。
            char[] chars = new char[4];

            // ここに、1文字ずつ書き込み、サイズを越えて書き込もうと
            // することでバッファオーバーランしてみます。

            String string = "あいうえお";
            // 1文字ずつコピーします。
            // 配列のサイズより1文字多いとこがポイント。
            for( int iF1 = 0; iF1 < string.length(); ++iF1 )
            {
                chars[iF1] = string.charAt( iF1 );
            }
        }
        catch( ArrayIndexOutOfBoundsException e )
        {
            e.printStackTrace();
            // java.lang.ArrayIndexOutOfBoundsException: 4
            //     at Sample.main(Sample.java:19)
        }

        // このように例外が発生します。
        // もし例外が発生しなかったら、バッファオーバーフローが
        // 可能になってしまいます。
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/06/20
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。