If you want a set size to your array then declare it as an array of pointers and dynamically allocate memory to each pointer:
Code:
int *array[5];
for ( int i ( 0 ); i < 5; i++ )
array[i] = new int[2];
If the first dimension needs to be variable as well as subsequent dimensions then you will need to declare the array as a pointer to a pointer and allocate memory on both ends:
Code:
int **array = new int*[5];
for ( int i ( 0 ); i < 5; i++ )
array[i] = new int[2];
With this second method, remember that the levels of indirection match the number of dimensions. And don't forget to release the memory.
Code:
for ( int i ( 0 ); i < 5; i++ )
delete [] array[i];
delete [] array;