无法访问结构体中的结构体数组中的成员变量

发布于 2024-11-30 23:02:20 字数 672 浏览 0 评论 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 的脸吗?

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

追风人 2024-12-07 23:02:20

尝试以下几行:

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 访问它。

Try these lines instead:

world.tile[3][3]->obj=newobj();//newobj() returns def_obj type

world.tile[3][3]->obj.face;

Explanation:
world.tile[3][3] is a def_tile. It's obj field isn't def_obj, but rather def_obj*. Therefore, to get the def_obj that it points to, you should use ->obj.
Inside def_obj, face is just a char, so you would access it with .face.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文