VC中如何定义一个多维CHAR型数组?
我试来试去就是不行charary[2][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'}};他说TOOMANYINITIALIZ...
我试来试去就是不行
char ary[2][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'}};
他说TOO MANY INITIALIZERS
我怎么在定义数组的同时给他初始化? 展开
char ary[2][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'}};
他说TOO MANY INITIALIZERS
我怎么在定义数组的同时给他初始化? 展开
2个回答
展开全部
多维char型数组,例如3维。
可以声明为: char a3d[xdim][ydim][zdim];
或3维指针 char ***a3d; 指针型可以动态分配单元。
例如:
#include <stdlib.h>
void main()
{
int xdim=4,ydim=3,zdim=2; // 3个维的大小
char ***a3d;
int i,j,k,n;
//动态分配单元
a3d = (char ***) malloc(xdim * sizeof(char **));
for (i = 0; i < xdim; i++) {
a3d[i] = (char **) malloc(ydim * sizeof(char *));
for(j = 0; j < ydim; j++) {
a3d[i][j] = (char *) malloc(zdim * sizeof(char));
};
};
// 用strcpy函数赋值, 3维char型数组等同2维char型字符串数组。
strcpy(a3d[0][0],"a1");
strcpy(a3d[0][1],"b2");
strcpy(a3d[0][2],"c3");
strcpy(a3d[1][0],"d4");
strcpy(a3d[1][1],"e5");
strcpy(a3d[1][2],"f6");
strcpy(a3d[2][0],"g7");
strcpy(a3d[2][1],"h8");
strcpy(a3d[2][2],"i9");
strcpy(a3d[3][0],"j0");
strcpy(a3d[3][1],"kk");
strcpy(a3d[3][2],"ll");
// 打出来看看
for(i=0;i<xdim;i++)for(j=0;j<ydim;j++)for(k=0;k<zdim;k++)
printf("%c ",a3d[i][j][k]);
exit(0);
}
如果想声明3维字符串char型数组,则要定义一个4维char型数组。
char ****a4d; 或
char a4d[xdim][ydim][zdim][Length_of_string];
可以声明为: char a3d[xdim][ydim][zdim];
或3维指针 char ***a3d; 指针型可以动态分配单元。
例如:
#include <stdlib.h>
void main()
{
int xdim=4,ydim=3,zdim=2; // 3个维的大小
char ***a3d;
int i,j,k,n;
//动态分配单元
a3d = (char ***) malloc(xdim * sizeof(char **));
for (i = 0; i < xdim; i++) {
a3d[i] = (char **) malloc(ydim * sizeof(char *));
for(j = 0; j < ydim; j++) {
a3d[i][j] = (char *) malloc(zdim * sizeof(char));
};
};
// 用strcpy函数赋值, 3维char型数组等同2维char型字符串数组。
strcpy(a3d[0][0],"a1");
strcpy(a3d[0][1],"b2");
strcpy(a3d[0][2],"c3");
strcpy(a3d[1][0],"d4");
strcpy(a3d[1][1],"e5");
strcpy(a3d[1][2],"f6");
strcpy(a3d[2][0],"g7");
strcpy(a3d[2][1],"h8");
strcpy(a3d[2][2],"i9");
strcpy(a3d[3][0],"j0");
strcpy(a3d[3][1],"kk");
strcpy(a3d[3][2],"ll");
// 打出来看看
for(i=0;i<xdim;i++)for(j=0;j<ydim;j++)for(k=0;k<zdim;k++)
printf("%c ",a3d[i][j][k]);
exit(0);
}
如果想声明3维字符串char型数组,则要定义一个4维char型数组。
char ****a4d; 或
char a4d[xdim][ydim][zdim][Length_of_string];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2006-10-05
展开全部
你的是char ary[2][3]!
怎么是[2]呢?
你初始化时明显是3行嘛!!
改成char ary[3][3]就对了
怎么是[2]呢?
你初始化时明显是3行嘛!!
改成char ary[3][3]就对了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询