我得到了这样的错误:在此代码中请求成员,而不是结构或联合
int main() {
char Oberon;
struct Oberon {
short borsa_oro;
short punti_ferita;
short incantesimi;
short pozione_guaritrice;
short veleno;
char armatura;
char arma;
};
Oberon.borsa_oro=10;
Oberon.punti_ferita=5;
Oberon.incantesimi=2;
Oberon.pozione_guaritrice=5;
strcpy (Oberon.armatura, "Vesti del mago");
strcpy (Oberon.arma, "Spada di Oberon");
return 0;
}我该怎么办?
发布于 2016-12-06 01:42:18
我想你的意思是创建一个类似于player结构的东西,然后创建Oberon,他是一个结构玩家。
您还忘记了将一个内存块与armatura和arma关联起来。
您还试图在定义结构之前创建一个player实例。
所以我想你的意思是:
#include <stdio.h>
#include <string.h>
int main(void)
{
struct player {
short borsa_oro;
short punti_ferita;
short incantesimi;
short pozione_guaritrice;
short veleno;
char armatura[50];
char arma[50];
};
struct player Oberon;
Oberon.borsa_oro = 10;
Oberon.punti_ferita = 5;
Oberon.incantesimi = 2;
Oberon.pozione_guaritrice = 5;
strcpy (Oberon.armatura, "Vesti del mago");
strcpy (Oberon.arma, "Spada di Oberon");
printf("Oberon ha %d oro e utilizza la armatura %s\n", Oberon.borsa_oro, Oberon.armatura);
return 0;
}发布于 2016-12-06 01:41:16
这不是结构应该使用的方式。您还拥有一个同名的char,char Oberon;将其删除或重命名。
Structs只是描述一个数据类型,你仍然需要初始化它们,就像任何其他的一样;例如:
struct person {
int age;
...
};
struct person p;
p.age = 10;为了简化这一过程,可以使用typedef
typedef struct person {
int age;
...
} person;
person p;
p.age = 10;https://stackoverflow.com/questions/40979942
复制相似问题