maximum number of dimensions in C/C++ array

andre maute andre.maute@gmx.de
Mon May 15 14:50:00 GMT 2006


On Monday 15 May 2006 13:32, John Love-Jensen wrote:
> Hi Andre,
>
> I have not run into the number-of-dimension limit of the compiler.
>
> But I've never tried 8 (or more) dimensions!
I investigated it further and i can limit it to 9 dimensions
>
> I don't think the ISO 9899:1999 (C99) or ISO 9899:1989 (C89) have limits on
> the number of dimensions.  I presume the only constraint is available
> memory for your architecture.
that would be nice
>
> Calculate out how many bytes of storage your technique will utilize:
> sizeof(double) * n1 * n2 * n3 * n4 * n5 * n6 * n7 * n8;
> Is that within the constraint of your platform?  For instance, PC-DOS that
> limit would be 65536 bytes.
My system is a i686-pc-linux-gnu with enough memory.
I thought that perhaps the compiler needed a maximum dimension constraint.
>
> Also note:  putting arrays (or any sort of data) in header files is
> strongly discouraged.  If two different source files include that same
> header file, each translation unit will get its own copy of that data. 
> Header files are for declarations of things (no storage reserved), not
> definitions of things (bytes of code or data allocated).
I know. Perhaps the best way for such a big array is to create a file e.g 
called bigarray.cc and one bigarray.h where the array is declared extern.

>
> Also, as mentioned already, putting large arrays on the stack is
> discouraged, because the stack is usually significantly smaller than the
> heap (or in C++ lingo, the global store).
I don't put them on the stack, so ...
>
> Sincerely,
> --Eljay
Thank you for your kind response, regards
Andre



More information about the Gcc-help mailing list