从c中的嵌套结构中提取结构

时间:2010-09-02 09:33:19

标签: c nested structure extract

我有以下问题:

我有一个内部有很多结构的全局结构。 现在我想要取出一个子结构并存储在其他结构中。

typedef struct 
{
  int a;
}A;

typedef struct
{
 int b;
}B;

typedef struct 
{ 
 A dummy1;
 B dummy2;
} C;

我想声明从C中提取A的第四个结构。 我做了我的memcpy,这是唯一的方式吗?

非常感谢帮助

由于 Huzaifa

3 个答案:

答案 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;