所以我有这段代码,但是当我运行它时,它会显示“错误:在某种结构或联盟中请求成员'nama‘。这是一个管理程序,当您购买一张电影票时,模块需要管理员的名称才能在票证中打印它。
struct admin
{
char nama[100];
char id[100];
char password[100];
};
struct admin pengatur[100];
ModeAdmin(pengatur[counter]);
void ModeAdmin(struct admin *c)
{
struct admin pembuka;
strcpy(pembuka.nama,c.nama);
strcpy(pembuka.id,c.id);
strcpy(pembuka.password,c.password);
printf("Welcome %s",pembuka.nama);
printf("1. Print Ticket\n");
printf("2. Add New Film\n");
}发布于 2018-06-21 14:53:44
c是指向结构的指针,而不是结构本身,因此不能在其上使用.运算符。您需要使用->,它取消指针,然后获取成员:
strcpy(pembuka.nama,c->nama);
strcpy(pembuka.id,c->id);
strcpy(pembuka.password,c->password);发布于 2018-06-21 14:52:41
这是:
c.nama应:
c->nama由于c不是结构或联合,所以它是指向结构的指针。
发布于 2018-06-21 14:52:40
变化
strcpy(pembuka.nama,c.nama);至
strcpy(pembuka.nama,c->nama); 所有其他的c.也同样发生。
这是必要的,因为当pembuka是struct admin类型时,c只是指向一个指针。
https://stackoverflow.com/questions/50971467
复制相似问题