无法访问struct中struct结构中的成员变量

时间:2011-08-23 08:55:36

标签: c pointers struct member-variables

我正在制作一个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的脸?

1 个答案:

答案 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,您应该使用->objdef_obj内,face只是一个字符,因此您可以使用.face访问它。