This code demonstrates how to create two-dimensional arrays in the heap:
// Returns a pointer-to-pointer to a newly created array// of size [row : col].int **Create2D(int row, int col){ int **p = new int* [row]; for (int j = 0; j < row; j ++) p[j] = new int[col]; return p;}// Deletes an array pointed by 'p' that has 'row' number rowsvoid Delete2D(int **p, int row){ for (int j = 0; j < row; j ++) delete [] p[j]; delete [] p;}int main(){ int m = 3, n = 4; int **p = Create2D(m, n); // some actions with p[i][j]... Delete2D(p, m); return 0;}