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
我怎么在定义数组的同时给他初始化?
展开
 我来答
L_o_o_n_i_e
2006-10-05 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5118万
展开全部
多维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];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2006-10-05
展开全部
你的是char ary[2][3]!
怎么是[2]呢?
你初始化时明显是3行嘛!!
改成char ary[3][3]就对了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式