size_t is unsigned. In Java, there are no unsigned fixed-width pseudointegral types, so it can perhaps be forgiven for having an array’s length field be signed. In .NET, however, which has unsigned
ints, an array’s length field is also signed. What could it possibly mean to have a length less than zero?