如题…如何定义一个二维动态数组,并且最好给一下定义完如何使用的方法
int **p;
int i;
//申请空间
p = (int**)malloc(sizeof(int*)*M);
for (i=0; i<M; i++)
p[i] = (int*)malloc(sizeof(int)*N);
//释放空间
for (i=0; i<M; i++)
free(p[i]);
free(p);
1.如果是GCC编译器,直接支持长度是变量的二维数组
int n,m;
int [n][m];
2.如果不支持这样的形式,就用malloc申请
int n,m,i;
int **arr = (int **)malloc(sizeof(int *) * n);
for(i = 0; i < n; i++)
{
arr[i] = (int *)malloc(sizeof(int) * m);
}
为什么不用c++呢
Vector
个人意见:
用容器代替数组,用智能指针或者new来代替malloc,难道你不觉得用前面的方法定义二维数组太麻烦了吗