Visual Basic における配列のサイズ
更新 : 2007 年 11 月
配列のサイズは、そのすべての次元の長さの積です。これは、現在配列に含まれている要素の総数を表します。
次の例では 3 次元配列を宣言しています。
Dim prices(3, 4, 5) As Long
変数 prices の配列の全体のサイズは、(3 + 1) x (4 + 1) x (5 + 1) = 120 です。
配列サイズの考慮事項
配列のサイズを扱う際に考慮する必要があるいくつかの点があります。
次元の長さ
各次元のインデックスは 0 ベースであり、範囲は 0 から上限です。したがって、次元の長さは、その次元に対する宣言された上限よりも 1 だけ大きくなります。
長さの制限
配列のすべての次元の長さは、(2 ^ 31) - 1 である Integer データ型の最大値に制限されます。しかし、配列のサイズの総数も、システムで利用できるメモリによって制限されます。利用できる RAM の容量を超える配列を初期化する場合、共通言語ランタイムは OutOfMemoryException 例外をスローします。
サイズおよび要素のサイズ
配列のサイズは、その要素のデータ型には依存しません。サイズは常に、使用するストレージのバイト数ではなく、要素の合計数を表します。
メモリの使用量
配列がメモリに格納される方法に関して、推測で行うのは安全ではありません。ストレージは、データ幅の異なるプラットフォームによって変わります。したがって、配列が同じであれば、32 ビットのシステムよりも、64 ビットのシステムのほうがより多くのメモリを使用します。配列を初期化するとき、システム構成に応じて、要素をできるだけ近くに集めるように、またはハードウェア本来の境界条件にすべてをそろえるように、共通言語ランタイム (CLR: Common Language Runtime) によってストレージが割り当てられます。また、配列は制御情報のためのストレージのオーバーヘッドを必要とします。このオーバーヘッドは、次元が追加されるごとに増加します。