[Haskell-cafe] Specify array or list size?

Jacob Nelson jake at jfet.net
Sat May 7 15:04:47 EDT 2005


GCC knows how big an array is:

jake$ cat > arrsizetest.c
#include <stdio.h>

int main()
{
         int a[50];
         printf("sizeof a == %d\n",sizeof(a));
         return 0;
}
jake$ gcc arrsizetest.c
jake$ ./a.out
sizeof a == 200

jacob

On Sat, 7 May 2005, Thomas Davie wrote:

>> No, it introduces a variable of type "array of 50 ints", which can be
>> converted to "pointer to int".
>> 
>> It matters when you make a pointer of such arrays, an array of such
>> arrays, or sizeof such array. In C++ the size can be matched by
>> template parameter, and you can have separate overloadings for
>> separate array sizes.
>> 
>
> 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.  If I'm thinking 
> straight then *any* array definition merely gets re-written to a memory 
> allocation of the relevant amount of ram, and beyond this point it is forever 
> of type "pointer to <array content type>".
>
> As an example:
>
> int bobsArray[5];
> bobsArray[6] = 23;
>
> is not badly typed ? it is merely a badly broken program.
>
> Bob
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>


More information about the Haskell-Cafe mailing list