0

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

4

1 回答 1

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.

于 2011-08-23T10:01:02.140 回答