搜索

C语言 指针二维数组怎么初始化

发布网友 发布时间:2022-04-20 17:24

我来回答

4个回答

热心网友 时间:2023-07-11 06:50

1、数组指针初始化方法:
int (*p)[4];
char a[3][4];
p=a;
p=&a[0];
p=a+1;
p=&a[1]; //都正确
p=a[0]; //错误
p=a[1]; //错误。
2、首先,指针p表示的是,指向一个含有4个元素的一维数组的指针,因此,必须把一个含有4个元数的数组的地址赋给指针p才会正确。因为二维数组名a,其实就是&a[0],表示二维数组第一行的行指针,这一行包含有4个元素,因此他就是一个含有4个元素的一维数组的指针,是正确的赋值。同理a+1是与&a[1]等价的,也就是表示的是二维数组第行的的行指针,同理a[0]是错误的,因为a[0]是指的第一行第一个元素的地址,也就是&a[0][0],他只含有一个元素,不是一个数组的地址,所以错误

热心网友 时间:2023-07-11 06:50

Total_FileType[0][typea] = malloc(xxx);
strcpy(Total_FileType[0][typea],newname);
//也可以不申请控制,直接让数组元素指向数据,同样适用*提取数据
*(Total_FileType[0][typea])读不到数据么?

热心网友 时间:2023-07-11 06:51

char * Total_FileType[MAXTYPE][MAXTOTAL] = { 0 };

是这个问题,把那个*去掉就好了,不应该定为指针。
然后这么写
strcpy(Total_FileType[0],newname)typea++

热心网友 时间:2023-07-11 06:51

可以直接让指针有所指,比如指向字符串
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top