Okay, It's been a while since I've done this in C but I'll try and explain my understanding of it.
In actuality an array is a pointer to a set pf pointers, so a multi-dimentional array is a pointer to a pointer to set of pointers, etc.
I'll use a 3 dimentional array as an example.
ary
so we have x number of planes that have y number of rows that has z number of colums.
Now in order to traverse every element in this multi-dimentional array we have to go through every colum of every row of every plane. But we dont't want to do that. We want the pointer of a specific element in our multi-dimetional array.
So we know what we want but how to get it? Well, since we have x planes that contain our y rows and z colums, then we can add them like this:
I'll use your example but with 3 dimentions.
int base
address = base[index1][index2][index3]
address = base+(index1* x * sizeof(int))+(index2 * y * sizeof(int))+(index3 * sizeof(int))
Okay, I was going to go into n-dimentional arrays but It's getting late and I'm starting to confuse myself now. :-P
Basically for an n-dimentional array you're gonna have to create a loop to traverse your array.
If this is of no help, then I appologize. It's been quite a while since I've had to do this.
This contains more algorithyms for finding addresses.
Blitter