c语言-指针-指向三维数组

来源:百度知道 编辑:UC知道 时间:2024/05/31 22:52:39
我要让指针指向三维数组,要求可以让指针的指向交换,可以用指针访问数组中的每一个元素,我的代码出现了错误
char m[H][6][32];
char (*n)[H];
for(p=0;p<=H;p++)
n[p]=m[p];
请问要怎样做才可以:
我的三维数组是一个表,第一维是行,第二维是列,第三维是字符(组成字符串)
忘了说H是宏定义
我的三维数组是全局变量
序号 姓名 性别 成绩 报考年月 毕业学校
1 刘景玉 女 不合格 200607 延吉市职业中等专业学校
2 李会姣 女 合格 200607 北京电子科技职业学院
3 卢昊 男 合格 200607 山东经济学院
4 张艳华 女 合格 200607 湖北工业大学
5 于玮祺 女 合格 200607 中国石油大学(华东)
6 李强 男 不合格 200607 军事经济学院
7 王寅昶 男 合格 200607 南京工业大学
8 衣静 女 合格 200607 合肥工业大学
9 王磊 男 合格 200607 中原工学院
10 刘京 女 合格 200607 河北农业大学
我所说的交换主要是为了按某列(如:序号)进行排序

这样就可以了
char m[H][6][32];
char ***p=NULL;
p=m;

int i,j,k;
char ***m = (char***)malloc(H* sizeof(char**)); //定义动态三维数组m
for(j=0; j<m; j++)
{
m[j] = (char**)malloc(6*sizeof(char*));
for(k=0; k<n; k++)
{
m[j][k] = (char*)malloc(32*sizeof(char));
}
}
char *n;
n=(char *)malloc(sizeof(char )*H);
for(i=0;i<=H;i++)
n[i]=m[i][6][32];