如何用指针构建二维数组啊
发布网友
发布时间:2023-10-19 08:19
我来回答
共4个回答
热心网友
时间:2024-12-04 10:06
区分好是二级指针还是一级指针
二维数组的数组名相当于二级指针
要动态分配二维数组,我觉得可以这样
#define M 10
#define N 6
Statist **statists;
statists=new Statist*[M];
for(int i=0;i<M;i++)
statists[i]=new Statist[N];
//不知道还有没有其它方法,这方法对二维还可以,但如果更*该怎么办?
//就是该如何动态分配*数组(有没有实际意义另当别论)讨论讨论
热心网友
时间:2024-12-04 10:06
int N;
int (*a)[3];
scanf("%d",&N);
a=(int (*)[3])malloc(sizeof(int)*(N)*3);
热心网友
时间:2024-12-04 10:07
二维数组可以看成是指针的指针,b[][]=**b;
比如b[2][5];
它是一个2行5列的二维数组,也可以看成是二级指针,一级存放的是行指针,然后每个行指针里面其实又是指向了5个列元素。
*(*(b+i)+j),*(b+i)是先取行指针,然后+j偏移到所要的列,然后*取值就得到i行j列的数据了。
热心网友
时间:2024-12-04 10:07
区分好是
二级指针
还是一级指针
二维数组
的数组名相当于二级指针
要动态分配二维数组,我觉得可以这样
#define
M
10
#define
N
6
Statist
**statists;
statists=new
Statist*[M];
for(int
i=0;i<M;i++)
statists[i]=new
Statist[N];
//不知道还有没有其它方法,这方法对二维还可以,但如果更*该怎么办?
//就是该如何动态分配
*数组
(有没有实际意义另当别论)讨论讨论