C 会员申请';nama';在非结构或联盟中

C 会员申请';nama';在非结构或联盟中,c,C,所以我有这段代码,但当我运行它时,它显示“错误:请求非结构或联合中的成员'nama'。 这是一个管理员程序,当你购买电影票时,模块需要管理员的名字来打印在票上 struct admin { char nama[100]; char id[100]; char password[100]; }; struct admin pengatur[100]; ModeAdmin(pengatur[counter]); void ModeAdmin(struct admin *c

所以我有这段代码,但当我运行它时,它显示“错误:请求非结构或联合中的成员'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");
}
改变

以及所有其他类似的
c.

这是必要的,因为虽然
pembuka
类型为
struct admin
c
只是指向一个的指针。

这:

c.nama
应该是:

c->nama

由于
c
不是结构或联合,它是指向结构的指针。

c
是指向结构的指针,而不是结构本身,因此不能在其上使用
运算符。您需要改为使用
->
,这将取消对指针的引用,然后获取成员:

strcpy(pembuka.nama,c->nama);
strcpy(pembuka.id,c->id);
strcpy(pembuka.password,c->password);

struct admin
的定义是什么?对不起,我忘了将
c.
添加到
c->
。例如
c.nama
应该是
c->nama
c->
等同于
(*c)。
。谢谢你,你知道吗?
c->nama
strcpy(pembuka.nama,c->nama);
strcpy(pembuka.id,c->id);
strcpy(pembuka.password,c->password);