C语言 把结构体数组的地址赋给指针

2024-11-05 11:45:30
推荐回答(4个)
回答(1):

1、结构体指针其实是一个指针,它存储的是指向某个结构体的“地址”,所以结构体指针数组存储的其实是指向一组结构体的“地址”数组,它本身并不包含结构体的具体内容(没有被分配内存)
2、所以当用到他们时,要么重定向,比如:
d=&b; //让d指向b,d存储的是b的地址,这样就能通过d来调用b了
要么用malloc为他们分配内存:
d=(struct h *)malloc(sizeof(struct h));
这样d就指向系统为其分配的一块内存,其内容就是struct h中的东西

回答(2):

如果是两个结构体指针类型的变量的话,可以直接赋值,例如:Student *p,*q;它们之间可以直接赋值:p=q或者q=p;但是这个赋值的时候,"="左边的指针一定要是没有被分配过空间的。如果想将结构体变量a的地址给指针p1,可以这样p1=&a,同样,p1一定要是没有被分配过空间的

回答(3):

Student *p1 = &s[0]; 就可以获得数组的第一个地址了
访问第二个 就让p1++;

回答(4):

p1 = s