我有以下问题:
我有一个内部有很多结构的全局结构。 现在我想要取出一个子结构并存储在其他结构中。
typedef struct
{
int a;
}A;
typedef struct
{
int b;
}B;
typedef struct
{
A dummy1;
B dummy2;
} C;
我想声明从C中提取A的第四个结构。 我做了我的memcpy,这是唯一的方式吗?
非常感谢帮助
由于 Huzaifa
答案 0 :(得分:1)
您可以指定结构。所以:
typedef struct
{
A blah1;
B blah2;
/* Other members here */
} D;
C c;
D d;
...
d.blah1 = c.dummy1;
完全没问题。
答案 1 :(得分:0)
使用指向所需结构的指针:
int main() {
C c;
c.dummy1.a = 10;
c.dummy2.b = 20;
A *a;
a = &c.dummy1;
printf("%d\n", a->a);
return 0;
}
答案 2 :(得分:-1)
应该能够获取dummy1的引用。
typedef struct { A dummy1; } D;
C var1;
D var2.dummy;
(*var2.dummy) = &var1.dummy1;