Я хотел попытаться выделить массив из 4 миллиардов байт, и это мой код С#:
long size = 4 * 1000;
size *= 1000;
size *= 1000;
byte[] array = new byte[size];
этот код не работает с System.OverflowException
в строке, содержащей new
. Хорошо, получается Length
возвращает int
, поэтому длина массива также ограничена тем, что может хранить int
.
Тогда почему нет ошибки времени компиляции и long
разрешено использовать в качестве количества элементов массива при распределении?