日々のコンピュータ情報の集積と整理

Dr.ウーパのコンピュータ備忘録

2014年5月27日火曜日

JavaScriptの配列は未知の要素へ設定するだけで自動的に配列が拡張されるので非常に便利!!でも、その感覚で他の言語を使うとバッファオーバーフローのセキュリティホールを生み出すので注意!!

JavaScript の配列の場合、未知の要素へ値を設定するだけで、自動的に配列の要素の数が増加するので非常に便利です。

例えば、次のような使い方ができます。



コード

<script type="text/javascript">
<!--

    var a = [];
    a[0] = 10;
    a[9] = 100;

    for (var i = 0; i < a.length; i++) {
        document.writeln("a[" + i + "] = " + a[i] + "<br />");
    }

//-->
</script>

結果

a[0] = 10
a[1] = undefined
a[2] = undefined
a[3] = undefined
a[4] = undefined
a[5] = undefined
a[6] = undefined
a[7] = undefined
a[8] = undefined
a[9] = 100


コードでは空の配列を宣言し、配列の 0 番目に 10 を、9 番目に 100 を入れています。
そうすると、結果を見てわかるように、配列は0から9番目までの 10 個の要素が自動的に作成されます。

配列を作成した段階で、配列のサイズを指定しなくても良いので、非常にコーディングが楽になります。


しかしながら、ここまで便利な言語は世の中にはあまりありません。

この感覚で C 言語などの言語で配列を扱ってしまうと、バッファオーバーフローのセキュリティホールを生み出す可能性があります。

なぜならば、C言語などの言語では、配列のサイズはあらかじめ決めておく必要があり、そのサイズを超えた部分にアクセスすると、その部分は別のデータが入っているメモリにアクセスしてしまう可能性があるからです。


というわけで、配列の仕様を言語ごとにしっかりと確認してから、配列を使った方がよいということです。





関連記事

関連記事を読み込み中...

同じラベルの記事を読み込み中...