Two see how to create a dynamic two dimensional array (i.e., specify the number of rows and columns during execution), first look again at creating a 1-dimensional dynamic array.
The typedef declaration gives a name to an existing type.
typedef int blob;
This defines blob to be an alias for the type int.
Create a 1-dimensional array of blob's
typedef int blob;
int main()
{
int n;
blob *a;
cout << "How many rows? ";
cin >> n;
a = new blob[n]; // an array of n blob's
...
}
a[ --]-------->[ ]
[ ]
[ ]
[ ]
....
The type of a is pointer to blob, that is pointer to int.
It points to the first int an an dynamically created array of n int's.