这里为什么a[0]是二维a[0][0]是一维?

这里为什么a[0]是二维a[0][0]是一维?请给个详细的解释,新手刚学图片

6个回答

a是一个三维的 a[0]肯定就是三维中的第一个数组 所以是二维的 ,a[0][0]同上

sinat_33857101
sinat_33857101 我也只是勉强能看懂你说的
4 年多之前 回复

a【】是一维数组,a[][]二维数组

a[1][2][3]={{{1},{2},{3}},{{4},{5},{6}}}

inline unsigned char *** qx_allocu_3(int n,int r,int c,int padding=QX_DEF_PADDING)
{
unsigned char a,*p,***pp;
int rc=r*c;
int i,j;
a=(unsigned char*) malloc(sizeof(unsigned char )*(n*rc+padding));
if(a==NULL) {printf("qx_allocu_3() fail, Memory is too huge, fail.\n"); getchar(); exit(0); }
p=(unsigned char**) malloc(sizeof(unsigned char*)*n*r);
pp=(unsigned char***) malloc(sizeof(unsigned char**)*n);
for(i=0;i<n;i++)
for(j=0;j<r;j++)
p[i*r+j]=&a[i*rc+j*c];
for(i=0;i<n;i++)
pp[i]=&p[i*r];
return(pp);
}
给变量分配内存的过程如上面函数所示,上面是分配三维变量

二维数组是由一维数组构成的,如图所示:图片说明

我还是建议你去看看C++的指针,于是你就懂了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐