C-在结构中插入值
我正在尝试将值插入到结构中,以便以后可以再次显示它们C-在结构中插入值,c,struct,C,Struct,我正在尝试将值插入到结构中,以便以后可以再次显示它们 typedef struct { char* displayname; char* name; } objectHolder; void registerObject(char* displayname, char* name) { objectHolder->displayname = displayname; objectHolder->name = name; char buffe
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;
我尝试过更换->
,但也没有成功。我在谷歌上找不到关于如何正确执行的结果。非常感谢您的帮助。您有两个问题
第一个是语法,其中“arrow”->
用于指向结构的指针
另一个问题是
objectHolder
不是实际的结构实例,也不是变量。它是一个类型名。结构类型的别名。您可以使用objectHolder
来声明和定义结构的变量。在您的程序中,objectHolder
表示类型,而不是变量/对象。不能将运算符->
应用于类型,只能应用于指向对象的指针
如果要引入全局变量,则需要编写:
typedef struct {
char* displayname;
char* name;
} objectHolderType;
objectHolderType objectHolderObj;
objectHolderType *objectHolder = &objectHolderObj;
...
我希望我试图插入到结构中的内容能够像数据库一样工作,因此基本上,当我通过
registerObject
运行多个不同的值时,我希望能够稍后在循环中的其他地方返回它们。然后,您必须动态创建objectHolder
-对象,例如,objectHolder*oh=新的objectHolder代码>如果我这样做,我需要做些什么来改变,比如objectHolder->displayname=displayname
to?@J.Doe您需要知道的内容似乎太广泛,堆栈溢出的答案无法有效涵盖,因为您甚至不知道结构是什么-我可以建议您查找教程吗?@immibis如问题中所述,我找不到教程或任何有关此方面的信息。我很感谢你花时间发表评论,但这对我没有任何帮助。谢谢你的意见。解决这个问题的办法是什么?