如何在C/C++中动态分配二维数组
展开全部
方法1:
int NC=5, NR=3; // 假定5列3行
int i,j;
int **a; // a[NR][NC] -- *a[NR] -- a[j][i]
a = (int **) malloc(sizeof(int *) * NR);
for (j=0;j<NR;j++){
a[j] = (int *) malloc(sizeof(int) * NC);
}
=======
c++ 用 new 法:
int **p=new int*[M];
for(int i=0;i<M;i++) *p=new int[N];
=======
用自定义函数
int ** creatmatrix(int row, int col){
int i;
int **matrix;
matrix = (int **)malloc(row*sizeof(int *));
matrix[0] = (int *)malloc(row*col*sizeof(int));
for(i=1; i<row; i++) {
matrix[i] = matrix[i-1] + col; }
return matrix;
}
通过调用:
int **a, **b;
a = creatmatrix(3, 4); // 3行4列
b = creatmatrix(5,3); // 5行3列
int NC=5, NR=3; // 假定5列3行
int i,j;
int **a; // a[NR][NC] -- *a[NR] -- a[j][i]
a = (int **) malloc(sizeof(int *) * NR);
for (j=0;j<NR;j++){
a[j] = (int *) malloc(sizeof(int) * NC);
}
=======
c++ 用 new 法:
int **p=new int*[M];
for(int i=0;i<M;i++) *p=new int[N];
=======
用自定义函数
int ** creatmatrix(int row, int col){
int i;
int **matrix;
matrix = (int **)malloc(row*sizeof(int *));
matrix[0] = (int *)malloc(row*col*sizeof(int));
for(i=1; i<row; i++) {
matrix[i] = matrix[i-1] + col; }
return matrix;
}
通过调用:
int **a, **b;
a = creatmatrix(3, 4); // 3行4列
b = creatmatrix(5,3); // 5行3列
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int NC=5, NR=3; // 假定5列3行
int i,j;
int **a; // a[NR][NC] -- *a[NR] -- a[j][i]
a = (int **) malloc(sizeof(int *) * NR);
for (j=0;j<NR;j++){
a[j] = (int *) malloc(sizeof(int) * NC);
}
=======
c++ 用 new 法:
int **p=new int*[M];
for(int i=0;i<M;i++) *p=new int[N];
=======
用自定义函数
int ** creatmatrix(int row, int col){
int i;
int **matrix;
matrix = (int **)malloc(row*sizeof(int *));
matrix[0] = (int *)malloc(row*col*sizeof(int));
for(i=1; i<row; i++) {
matrix[i] = matrix[i-1] + col; }
return matrix;
}
通过调用:
int **a, **b;
a = creatmatrix(3, 4); // 3行4列
b = creatmatrix(5,3); // 5行3列
int i,j;
int **a; // a[NR][NC] -- *a[NR] -- a[j][i]
a = (int **) malloc(sizeof(int *) * NR);
for (j=0;j<NR;j++){
a[j] = (int *) malloc(sizeof(int) * NC);
}
=======
c++ 用 new 法:
int **p=new int*[M];
for(int i=0;i<M;i++) *p=new int[N];
=======
用自定义函数
int ** creatmatrix(int row, int col){
int i;
int **matrix;
matrix = (int **)malloc(row*sizeof(int *));
matrix[0] = (int *)malloc(row*col*sizeof(int));
for(i=1; i<row; i++) {
matrix[i] = matrix[i-1] + col; }
return matrix;
}
通过调用:
int **a, **b;
a = creatmatrix(3, 4); // 3行4列
b = creatmatrix(5,3); // 5行3列
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询