Velocity Reviews > Multidimensional Arrays

# Multidimensional Arrays

Terry
Guest
Posts: n/a

 08-30-2003
Hi,

can someone plz tell me how multidimensional arrays (like a 2-D array)
are stored in memory? Are they like single dimensional arrays? Stored
sequentially in one "row", so to say?

Thanks

Terry

Mike Wahler
Guest
Posts: n/a

 08-30-2003

Terry <(E-Mail Removed)> wrote in message
news:3f509baa\$(E-Mail Removed)...
> Hi,
>
> can someone plz tell me how multidimensional arrays (like a 2-D array)
> are stored in memory?

C doesn't really have 'multidimensional' arrays. What
looks like one is really an 'array of arrays'.

Arrays (however many 'dimensions') are stored in contigous
memory locations.

> Are they like single dimensional arrays? Stored
> sequentially in one "row", so to say?

An array:

int arry[2][3];

is stored thus:

Low High
[0][0], [0][1], [0][2], [1][0], [1][1], [1][2]

-Mike

Julian V. Noble
Guest
Posts: n/a

 08-30-2003
Terry wrote:
>
> Hi,
>
> can someone plz tell me how multidimensional arrays (like a 2-D array)
> are stored in memory? Are they like single dimensional arrays? Stored
> sequentially in one "row", so to say?
>
> Thanks
>
> Terry

C and most modern languages store 2D arrays "row-wise". That is, if
S is the data size in storage units, and W is the number of items in
a row, the actual address of the i,j 'th item is

A[0][0] + S*(i+W*j)

of course a real C maven would express the above differently,
probably with pointers, but you see what I mean.

Fortran, BTW, stores data column-wise. This is a problem for people
who have to link compiled Fortran library functions to C or vice
versa.

--
Julian V. Noble
Professor Emeritus of Physics
http://www.velocityreviews.com/forums/(E-Mail Removed)
^^^^^^^^^^^^^^^^^^
http://galileo.phys.virginia.edu/~jvn/

"Science knows only one commandment: contribute to science."
-- Bertolt Brecht, "Galileo".