如何定义结构体指针数组

struct student
{
char id[7];
char name[20];
char *lastname;
int salary;
};
struct student *std[4];
std[1]->id = 123;//这里提示表达式必须是可以修改的左值。
请问以上不是定义了一个指针数组吗?该数组里的所有指针都指向一个结构体类型。
请各位老师不吝赐教。

第1个回答  推荐于2018-03-11
你只是申请结构体指针数组,每个元素都是结构体指针,

注意,这些都是指针,而指针所指向的结构体空间却没有申请新的结构体或者指向一个存在的结构体。

std[1]->id //表示std[1]所指结构体中的项id,但是你指向指向的结构体却不知道是哪个·~

std[1]=(struct student *)malloc(sizeof(struct student));
//为std[1]指针指向申请的结构体本回答被网友采纳
第2个回答  2015-05-25
struct studen *(std[4])追问

仍然不行,但是为什么salary就可以呢?

 

追答

id 定义成char*

id 定义成char*

追问

char *id可以,但是就是不明白为什么char id[7]不行

追答

静态字符串不能赋值给数组,只能初始化

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网