Just allocate a three-dimensional array...
/// Allocates a 2-dimensional double array.
double **doubleArray2(int y, int z)
{
double **a = malloc(sizeof(double *)*y);
if(!a) {
[NSException raise:@"no memory" format:@"haha-1"];
}
for(int i=0; i<y; i++)
{
a[i] = malloc(sizeof(double)*z);
if(!a[i]) {
[NSException raise:@"no memory" format:@"haha-2"];
}
}
return a;
}
/// Allocates a 3-dimensional double array.
double ***doubleArray3(int x, int y, int z)
{
double ***b = malloc(sizeof(double **)*x);
if(!b) {
[NSException raise:@"no memory" format:@"haha-3"];
}
for(int i=0; i<x; i++)
{
double **a = doubleArray2(y, z);
if(!a) {
[NSException raise:@"no memory" format:@"haha-4"];
}
b[i] = a;
}
return b;
}
have fun...
EDIT: and don't forget to deallocate the array properly when you're done ;)