int x,y;
scanf("%d%d",&x,&y);
int** a=new int* [x];
for(int i=0; i<x; i++)
{
a[i]=new int[y];
}
for(int i=0; i<x; i++)
for(int j=0; j<y; j++)
a[i][j]=i;
for(int i=0; i<x; i++)
for(int j=0; j<y; j++)
printf("%d\n",a[i][j]);
生成一个长度为x的一维指针数组,数组元素是int*指针,每个指针又可以再指向一个一维int数组,这些就相当于生成了一个第一维度为x的二维数组。
int i,
j,
m, //行数
n; //列数
cout < < "input value for m,n: ";
cin> > m> > n;
//注意下面这一行:vector <int后两个 "> "之间要有空格!否则会被认为是重载 "> > "。
vector <vector <int> > vecInt(m, vector <int> (n));
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
vecInt[i][j] = i*j;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
cout < <setw(5) < <vecInt[i][j] < < ": " < <setw(9) < <&vecInt[i][j];
cout < <endl;
}