无法访问结构体中的结构体数组中的成员变量
我正在制作一个C程序,它需要访问结构体中的结构体数组。
主函数中的定义如下所示
struct def_world
{
bool lock;
char tilemap;
def_tile tile[100][100];
struct def_tile
{
bool lock;
char kind;
def_obj * obj;
void * evt;
};
struct def_obj
{
bool lock;
int indexOfTable;
bool frozen;
char x,y;
char kind;
char face;
char * msg;
char * ip;
};
,我想访问世界的 tile[3][3]
的 obj 的面。
我初始化世界,
def_world world={0,};
但以下几行出错,
world.tile[3][3].obj=newobj();//newobj() returns def_obj type
world.tile[3][3].obj->face;
知道如何访问 obj 的脸吗?
I am making a C program, which needs to access a struct array in a struct.
The definition looks like below
struct def_world
{
bool lock;
char tilemap;
def_tile tile[100][100];
struct def_tile
{
bool lock;
char kind;
def_obj * obj;
void * evt;
};
struct def_obj
{
bool lock;
int indexOfTable;
bool frozen;
char x,y;
char kind;
char face;
char * msg;
char * ip;
};
in the main function, I want to access world's tile[3][3]
's obj's face.
I initialize world as
def_world world={0,};
but the following lines make errors
world.tile[3][3].obj=newobj();//newobj() returns def_obj type
world.tile[3][3].obj->face;
any idea how to access obj's face?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试以下几行:说明:
world.tile[3][3]
是一个def_tile
。它的obj
字段不是def_obj
,而是def_obj*
。因此,要获取它指向的def_obj
,您应该使用->obj
。在
def_obj
内部,face 只是一个字符,因此您可以使用.face
访问它。Try these lines instead:Explanation:
world.tile[3][3]
is adef_tile
. It'sobj
field isn'tdef_obj
, but ratherdef_obj*
. Therefore, to get thedef_obj
that it points to, you should use->obj
.Inside
def_obj
, face is just a char, so you would access it with.face
.