When you have an array like this:
int foo[3][2][2];
and you make:
int *bar = &foo[0][0][0];
Is this the way it works?
*bar == foo[0][0][0];
*(bar+1) == foo[0][0][1];
*(bar+2) == foo[0][1][0];
*(bar+3) == foo[0][1][1];
*(bar+4) == foo[1][0][0];
I'm not sure and have a bit of code dependent on if that works.