如何使用struct A修改结构B中的数据。它没有名称,只有一个类型。
struct A {
struct B;
};
struct B {
int data;
};
由于这是针对学校的,我无法更改上述代码。我只能使用它。我为我的主要尝试了类似的东西,但它没有工作
int main (){
struct A myStruct;
myStruct.B.data = 3;
return 0;
}
提前致谢。
编辑:对不起,我只是想尽可能快地发布这个,这就是为什么我没有用适当的c语法发布这个。无论如何,我的错是在我的问题上不够清楚。
我知道我的主要功能不起作用我只是想知道它是否有可能访问struct B中的数据而不在struct A中声明它的名称,因为我有以上。这是我由老师给出的代码,所以我不想修改结构,因为我想也许她希望我们以她编写的方式集体讨论使用它的方式。
iharob解释它的方式完全可以通过在结构A之前声明结构B,并实际给结构B命名。
是否根本无法在不给它命名的情况下访问struct B中的数据?
答案 0 :(得分:4)
您发布的代码甚至不是c代码,也不会编译。
您的主要错误是您不需要使用struct
名称来访问该成员。这应该是好的
struct B
{
int data;
};
struct A
{
struct B member;
};
int main(void)
{
struct A instance;
instance.member.data = 3;
return 0;
}
我假设你发布了一些示例代码,不要这样做。发布有问题的实际代码。您发布的代码完全无效,因为其中一个定义缺少类型,除非您struct
,否则无法在c中使用struct
来声明typedef
它。所以请在下次发布实际代码。
除非你真的知道自己在做什么,否则不要与struct
成员建立如此复杂的struct
。