-1
byte[] buffer2 = new byte[4294743227]; // string with System.OverflowException 

The number 4294743227 is uint.

Why do i get exception?

Sach
  • 10,091
  • 8
  • 47
  • 84
unnamed
  • 113
  • 1
  • 8

1 Answers1

5

According to this question, the maximum size of an array is System.Int32.MaxValue, which is 2,147,483,647.

See also the documentation on System.Array:

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).

Bart Friederichs
  • 33,050
  • 15
  • 95
  • 195