我正在尝试将值插入到结构中,以便稍后再次显示它们。
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上找到有关如何正确执行此操作的结果。任何帮助表示赞赏。
答案 0 :(得分:1)
您有两个问题。
第一个是语法,其中“arrow”->
用于指针到结构。
另一个问题是objectHolder
不是实际的结构实例,它不是变量。它是类型名称。结构类型的别名。您可以使用objectHolder
来声明和定义结构的变量。
答案 1 :(得分:0)
在你的程序中,objectHolder
表示类型,而不是变量/对象。您不能将运算符->
应用于类型,只能应用于指向对象的指针。
如果你想引入一个全局变量,那么你需要写:
typedef struct {
char* displayname;
char* name;
} objectHolderType;
objectHolderType objectHolderObj;
objectHolderType *objectHolder = &objectHolderObj;
...