[Haskell-cafe] Specify array or list size?

Marcin 'Qrczak' Kowalczyk qrczak at knm.org.pl
Sat May 7 15:07:31 EDT 2005


Thomas Davie <tom.davie at gmail.com> writes:

> I'm not familiar with your C++ example (not being familiar with C++),
> but I think that it's a bit of a stretch of the imagination to say
> that C "introduces a variable of type "array of 50 ints"", the fact
> that this is now an array of 50 integers is never checked at any
> point in the compilation or run, and I'm not sure it can be even if
> K&R had wanted to.

The size is taken into account when such array type is an element of
another array, and by sizeof.

int (*p)[50]; /* p may legally point only to arrays of 50 ints each */
++p; /* p is assumed to point into an array, and is moved by one
        element, i.e. by 50 ints */

> As an example:
>
> int bobsArray[5];
> bobsArray[6] = 23;
>
> is not badly typed - it is merely a badly broken program.

Because the array size is not taken into account by indexing. But it's
a part of the type. These issues are independent, for example in C#
both are the opposite.

-- 
   __("<         Marcin Kowalczyk
   \__/       qrczak at knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/


More information about the Haskell-Cafe mailing list