我正在制作一个C程序,它需要访问struct中的struct数组。
定义如下所示
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的脸?
答案 0 :(得分:1)
请尝试使用以下行:
world.tile[3][3]->obj=newobj();//newobj() returns def_obj type
world.tile[3][3]->obj.face;
击> <击>说明:
world.tile[3][3]
是def_tile
。它的obj
字段不是def_obj
,而是def_obj*
。因此,要获得它指向的def_obj
,您应该使用->obj
在def_obj
内,face只是一个字符,因此您可以使用.face
访问它。