首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:在此代码中请求成员,而不是结构或联合

错误:在此代码中请求成员,而不是结构或联合
EN

Stack Overflow用户
提问于 2016-12-06 01:28:11
回答 2查看 1.7K关注 0票数 1

我得到了这样的错误:在此代码中请求成员,而不是结构或联合

代码语言:javascript
复制
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;
}

我该怎么办?

EN

回答 2

Stack Overflow用户

发布于 2016-12-06 01:42:18

我想你的意思是创建一个类似于player结构的东西,然后创建Oberon,他是一个结构玩家。

您还忘记了将一个内存块与armaturaarma关联起来。

您还试图在定义结构之前创建一个player实例。

所以我想你的意思是:

代码语言:javascript
复制
#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;
}
票数 3
EN

Stack Overflow用户

发布于 2016-12-06 01:41:16

这不是结构应该使用的方式。您还拥有一个同名的char,char Oberon;将其删除或重命名。

Structs只是描述一个数据类型,你仍然需要初始化它们,就像任何其他的一样;例如:

代码语言:javascript
复制
struct person {
    int age;
    ...
};

struct person p;
p.age = 10;

为了简化这一过程,可以使用typedef

代码语言:javascript
复制
typedef struct person {
    int age;
    ...
} person;
person p;
p.age = 10;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40979942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档