You can allocate a multi-dimensional array dynamically, as in this example:
int*pp[10]; //an array of ten pointers for (int j=0; j<10; j++) //allocate sub-arrays { pp[j] = new int[5]; //every element in pp is a pointer to an array of 5 int's } pp[0][0] = 1; //use pp as a multi-dimensional array //