Yes, but you'd need to use structures/classes; you can't do it with the simple array syntax. Array dimensions are simple numbers; you can't have an array of dimensions.

However your "spec" doesn't seem to make a lot of sense. You seem to be trying to define array01 as 2D by 3D, that's a bizarre object which is 2D down one side and 3D down the other. If you mean array01 is a 2D array that contains 1D arrays and 3D arrays then you'll need to use polymorphism (array01 would be a 2D array of "base", from which array02 and array03 would be derived).

So if array01 is a 2D array of array02's and array03's, and array03 is a 3D array of 1D arrays, and array02 is a 1D array of 1D arrays, which is one possible way to make sense of your post, then you might get something like this:
Code:
// array01 contains both array02s and array03s so we need a base to derive them from
class array23base
{
};

// array03 contains AX2s, AX3s and AX4s so we need a base to derive them from
class AX234base
{
};

// The AXn's (2-4):
class AX2 : public AX234base
{
  int num[10];
};
class AX3 : public AX234base
{
  int num[10];
};
class AX4 : public AX234base
{
  int num[10];
};

// AX1 is "simple"
class AX1
{
  int num[10];
};

// array02 is an array of AX1s:
class Array02 : public array23base
{
  AX1 ax1[10];
};

// array03 is a 3D array containing AX2s, AX3s and AX4s:
class Array03 : public array23base
{
  AX234base *ax234s[10][10][10];
};

// Finally Array01 is a 2D array of array02s and array03s:
array23base *Array01[10][10];
Then at runtime you would need to initialise all those pointers.

Last edited by xpi0t0s; 17Oct2008 at 01:29..