#include <iostream>
using namespace std;
int main()
{
int m,n;
cin>>m>>n;//dimension of mat
// int a[m+1][n+1];// can build successfully
// C++中用new动态创建二维数组的格式一般是这样:
//TYPE (*p)[N] = new TYPE [][N];
//其中,TYPE是某种类型,N是二维数组的列数。采用这种格式,列数必须指出,而行数无需指定。
//在这里,p的类型是TYPE*[N],即是指向一个有N列元素数组的指针。
//还有一种方法,可以不指定数组的列数:
int **data;
data = new int*[m];//data 为指针数组 包含m个元素
for(int j=0;j<m;j++){
data[j]=new int[n];//data中 每个每个元素为指向大小为n的int型数组
}
for(int i=0;i<m;i++){// 初始化为0
for(int j=0;j<n;j++){
data[i][j]=0;
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cout<<data[i][j]<<' ';
}
cout<<endl;
}
for(int i=0;i<m;i++){
delete[] data[i];
}
delete[] data;
return 0;
}
额外问题:CODE BLOCKS + GCC 好像支持直接定义 int[m][n] 谁能解释一下