Размер массива в Visual Basic
Обновлен: Ноябрь 2007
Размер массива является произведением длин всех его измерений. Он представляет собой общее число элементов, в данный момент содержащихся в массиве.
В следующем примере показано объявление трехмерного массива:
Dim prices(3, 4, 5) As Long
Общий размер массива в переменной prices составляет (3 + 1) x (4 + 1) x (5 + 1) = 120.
Вопросы о размере массива
Существует ряд особенностей, о которых следует помнить при работе с размером массива.
Длина измерения
Индекс каждого измерения начинается с 0, что означает, что его диапазон от 0 до верхней границы. Таким образом, длина данного измерения на 1 больше объявленной верхней границы этого измерения.
Ограничения длины
Длина каждого измерения массива ограничена максимальным значением типа Integer, которое равно (2 ^ 31) - 1. Тем не менее, общий размер массива также ограничен доступной памятью в системе. При попытке инициализировать массив, размер которого превышает объем доступной оперативной памяти, общеязыковая среда выполнения создает исключение OutOfMemoryException.
Размер и размер элемента
Размер массива не зависит от типа его элементов. Размер всегда представляет общее число элементов, а не число байтов, занимаемое массивом при хранении.
Затраты памяти
Небезопасно делать любые предположения относительно способа хранения массива в памяти. Хранение зависит от размерности данных платформы, так один и тот же массив может потреблять больше памяти на 64-разрядных системах, чем на 32-разрядных. В зависимости от конфигурации системы при инициализации массива общеязыковая среда выполнения (CLR) может указывать такие способы хранения, как упаковка элементов максимально близко друг к другу или выравнивание всех элементов по естественным аппаратным границам памяти. Кроме того массив нуждается в хранении служебной информации, и размер этой информации возрастает при каждом добавлении измерения.
См. также
Задачи
Практическое руководство. Объявление переменной типа массива
Практическое руководство. Создание массива
Практическое руководство. Инициализация переменной типа массива
Практическое руководство. Определения размера массива
Практическое руководство. Изменение размера массива
Практическое руководство. Определение длины одного измерения массива
Устранение неполадок, связанных с массивами