如何定义结构体指针数组
structstudent{charid[7];charname[20];char*lastname;intsalary;};structstudent*std[4];s...
struct student
{
char id[7];
char name[20];
char *lastname;
int salary;
};
struct student *std[4];
std[1]->id = 123;//这里提示表达式必须是可以修改的左值。
请问以上不是定义了一个指针数组吗?该数组里的所有指针都指向一个结构体类型。
请各位老师不吝赐教。 展开
{
char id[7];
char name[20];
char *lastname;
int salary;
};
struct student *std[4];
std[1]->id = 123;//这里提示表达式必须是可以修改的左值。
请问以上不是定义了一个指针数组吗?该数组里的所有指针都指向一个结构体类型。
请各位老师不吝赐教。 展开
2个回答
展开全部
你只是申请结构体指针数组,每个元素都是结构体指针,
注意,这些都是指针,而指针所指向的结构体空间却没有申请新的结构体或者指向一个存在的结构体。
std[1]->id //表示std[1]所指结构体中的项id,但是你指向指向的结构体却不知道是哪个·~
std[1]=(struct student *)malloc(sizeof(struct student));
//为std[1]指针指向申请的结构体
注意,这些都是指针,而指针所指向的结构体空间却没有申请新的结构体或者指向一个存在的结构体。
std[1]->id //表示std[1]所指结构体中的项id,但是你指向指向的结构体却不知道是哪个·~
std[1]=(struct student *)malloc(sizeof(struct student));
//为std[1]指针指向申请的结构体
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询