c# Какой максимальный размер можно задать массиву типа byte[]?

276
15 мая 2018, 12:30

Следующий код вызывает исключение -"Переполнение в результате выполнения арифметической операции":

 byte[] aByte = new byte[ulong.MaxValue];

Сколько максимум элементов может иметь одномерный массив байт в c#? Как его можно расширить, если недостаточно стандартных границ? использовать многомерные массивы?

Answer 1

По-умолчанию максимальный размер массива в памяти 2 Гигабайта. На 64-битных системах это ограничение можно обойти, если включить в файле конфигурации gcAllowVeryLargeObjects в configuration/runtime. Но массив все равно не сможет содержать больше чем 4 милиарда элементов.

Придется создавать массив массивов. Многомерный массив не поможет, так на него работают те же самые ограничения, что и на одномерный.

Взято отсюда: https://msdn.microsoft.com/en-us/library/system.array(v=vs.110).aspx

By default, the maximum size of an Array is 2 gigabytes (GB). In a 64-bit environment, you can avoid the size restriction by setting the enabled attribute of the gcAllowVeryLargeObjects configuration element to true in the run-time environment. However, the array will still be limited to a total of 4 billion elements, and to a maximum index of 0X7FEFFFFF in any given dimension (0X7FFFFFC7 for byte arrays and arrays of single-byte structures).

READ ALSO
Как при событии “нажатие на ссылку” в “Webbrowser” получить атрибуты ссылки (имя страницы)?

Как при событии “нажатие на ссылку” в “Webbrowser” получить атрибуты ссылки (имя страницы)?

Планирую сделать систему управления контентомСостав системы: - Дерево страниц по категориям

253
C# Переполнение на win 8/win 10 x64 (IntPtr To Int32). Как бороться?

C# Переполнение на win 8/win 10 x64 (IntPtr To Int32). Как бороться?

Читаю память с 32-х битного приложенияВсё отлично работает на win 7 32bit/64bit, на xp

247
как получить координаты элемента UserControl

как получить координаты элемента UserControl

как получить координаты элемента UserControl (то есть на usercontrol есть два эллипса и нужно получить координаты одного из них) относительно холста...

216
Рандомный выбор + / -

Рандомный выбор + / -

Как рандомно выбрать + и - для вычисления ?

268