如何定义结构体指针数组

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;//这里提示表达式必须是可以修改的左值。
请问以上不是定义了一个指针数组吗?该数组里的所有指针都指向一个结构体类型。
请各位老师不吝赐教。
展开
 我来答
wuiiao333
推荐于2018-03-11 · TA获得超过799个赞
知道小有建树答主
回答量:666
采纳率:0%
帮助的人:199万
展开全部
你只是申请结构体指针数组,每个元素都是结构体指针,

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

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

std[1]=(struct student *)malloc(sizeof(struct student));
//为std[1]指针指向申请的结构体
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
箫韶九成凤凰来仪7
2015-05-25 · TA获得超过378个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:333万
展开全部
struct studen *(std[4])
更多追问追答
追问

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

 

追答
id 定义成char*
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式