【请教】如何指向二维字符串数组

来源:百度知道 编辑:UC知道 时间:2024/06/04 08:23:03
比如
char arr[5][4];
如何定义一个字符型的(n维)指针指向它呢
求教
第一个定义指向指针的指针好像太复杂了

第二个我试了好像出现lvalue required in function main的错误

第三个我一会没问题,我再看看后面的错误。。。

#include<conio.h>
#include<stdlib.h>
main()
{
char arr[5][4];
char (*str)[4];
int i;
void sequence(char *str[]);
str=arr[0];
system("cls");
for(i=0; i<5; i++)
scanf("%s",arr[i]);
/*str=arr;*/
sequence(str);
for(i=0; i<5; i++)
printf("%s\n", *(str+i));
}

void sequence(char *str[5])
{
int i, j;
char *p, temp[10];
p=temp;
for(i=0; i<9; i++)
for(j=i+1; j<10; j++)
if(strcmp(*(str+i) , *(str+j))>0)
{strcpy(p,str+i); strcpy(str+i,str+j); strcpy(str+j,p);}
}

最好溢出了好像。。。弹出DOS无效指令

?????
什么叫n维???

如果你想定义一个指向这个数组的指针,也只能跟着它的维数来定义!

char **p,arr[5][4];
p=arr;
也可以:
char *(p[4]);//定义一个字符指针数组!
p=arr;
也可以:
char (*p)[4];//定义一个指针指向宽为4的一维数组!
p=arr[0];
p++应该是自增4

路过,2分