C - 将值插入Struct

时间:2018-03-18 20:01:49

标签: c struct

我正在尝试将值插入到结构中,以便稍后再次显示它们。

typedef struct {
    char* displayname;
    char* name;
} objectHolder;

void registerObject(char* displayname, char* name) {
    objectHolder->displayname = displayname;
    objectHolder->name = name;

    char buffer[70];
    sprintf(buffer, "%s spawned", displayname);

    menu.drawFeedNotification(buffer, "Object Spawner");
}

但这会让我回头:

source/main.cpp:82:17: error: expected unqualified-id before ‘->’ token
     objectHolder->displayname = displayname;
                 ^
source/main.cpp:83:17: error: expected unqualified-id before ‘->’ token
     objectHolder->name = name;

我试图替换->,但也没有做到这一点。我无法在Google上找到有关如何正确执行此操作的结果。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

您有两个问题。

第一个是语法,其中“arrow”->用于指针到结构。

另一个问题是objectHolder不是实际的结构实例,它不是变量。它是类型名称。结构类型的别名。您可以使用objectHolder来声明和定义结构的变量。

答案 1 :(得分:0)

在你的程序中,objectHolder表示类型,而不是变量/对象。您不能将运算符->应用于类型,只能应用于指向对象的指针。

如果你想引入一个全局变量,那么你需要写:

typedef struct {
    char* displayname;
    char* name;
} objectHolderType;

objectHolderType objectHolderObj;
objectHolderType *objectHolder = &objectHolderObj;
...