Thanks Adak. That will eventually come up I'm sure but for my purposes, the dimensions of the array aren't necessarily "spatial" (if that makes sense). But I was thinking about it and came up with a solution which may be old hat to others but seems really cool to me. The solution is to essentially have one long array of some base type then have progressively larger typedefs in which base types and other smaller typedefs are nested. Obviously, they will have to be even units (no overlapping).
The practical use of this for me is that it allows me to store all my program data into one contiguous chunk of memory. I haven't gotten to this point yet, but I want to be able to easily copy and save the program data. It's also useful because it allows a fairly intuitive means of working with multi-dimensional arrays and nesting things deeply (though of course they're not really nested. Also, since they're typedefed, you can pass chunks of the data around to arrays and deal with them as autonomous pieces of data even though they're not. I'm still experimenting with this and trying to understand and figure everything out.
Here's a simple example of what I'm talking about:
Code:
typedef int double_int[2];
typedef int four_int[4];
typedef int eight_int[8];
int main()
{
int myArray[10] = {1,2,3,4,5,6,7,8,9,10};
double_int* big = &myArray[0];
four_int* bigger = &myArray[0];
eight_int* biggest = &myArray[0];
int* little_within_big = &bigger[2];
printf("big: %d\n", *big[1]);//3
printf("bigger: %d\n", *bigger[2]);//9
printf("bigger: %d\n", *biggest[1]);//9
printf("little_within_big: %d\n", little_within_big[1]);//10
return 0;
}