VC中如何定义一个多维CHAR型数组?

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:38:45
我试来试去就是不行
char ary[2][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'}};

他说TOO MANY INITIALIZERS
我怎么在定义数组的同时给他初始化?

你的是char ary[2][3]!
怎么是[2]呢?
你初始化时明显是3行嘛!!
改成char ary[3][3]就对了

多维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&