Multidimensional Arrays

T

Terry

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
 
M

Mike Wahler

Terry said:
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
address address
[0][0], [0][1], [0][2], [1][0], [1][1], [1][2]

-Mike
 
J

Julian V. Noble

Terry said:
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
(e-mail address removed)
^^^^^^^^^^^^^^^^^^
http://galileo.phys.virginia.edu/~jvn/

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,997
Messages
2,570,241
Members
46,831
Latest member
RusselWill

Latest Threads

Top