在结构中使用结构

-3 c struct nested

如何使用 struct A 修改 struct B 中的数据。它没有名称,只有一个类型。

struct A {
     struct B;
};

struct B {
     int data;
 };
Run Code Online (Sandbox Code Playgroud)

由于这是学校用的,我无法更改上面的代码。我只能使用它。我为我的主要尝试过这样的事情,但它不起作用

int main (){
      struct A myStruct;
      myStruct.B.data = 3;
      return 0;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢。

编辑:抱歉,我只是想尽快发布此内容,这就是为什么我没有使用正确的 c 语法发布此内容。无论如何,我的问题不够清楚是我的错。

我知道我的 main 不起作用我只是想知道是否有可能访问结构 B 中的数据而不像上面那样在结构 A 中声明它的名称。这是老师给我的代码,所以我不想修改结构体,因为我想也许她想让我们集思广益,像她写的那样使用它。

iharob 解释它的方式通过在结构 A 之前声明结构 B 并实际为结构 B 命名来完美地工作。

是否根本不可能在不给它命名的情况下访问结构 B 中的数据?

Iha*_*imi 5

您发布的代码甚至不是 c 代码,它无法编译。

您的主要错误是您不需要使用struct名称来访问成员。这个应该不错

struct B 
{
    int data;
};

struct A 
{
    struct B member;
};

int main(void)
{
    struct A instance;
    instance.member.data = 3;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我假设您发布了一些示例代码,不要那样做。发布有问题的实际代码。您发布的代码是完全无效的,因为定义的某一个缺乏类型,你不能声明struct不使用Sstruct除非你typedef吧。所以请下次发布实际代码。

并且除非您真的知道自己在做什么,否则不要structstruct成员建立如此复杂的s 。