40 億バイトの配列を割り当てようとしたかったのですが、これが私の C# コードです。
long size = 4 * 1000;
size *= 1000;
size *= 1000;
byte[] array = new byte[size];
このコードは、System.OverflowException
を含む行で失敗しますnew
。Length
さて、 returnsが判明したint
ため、配列の長さもint
保存できる長さに制限されています。
では、なぜコンパイル時エラーが発生long
せず、割り当て時に配列要素の数として使用できるのでしょうか?