2010-09-02 51 views
0

我有以下問題:從嵌套結構中提取結構c

我有一個全局結構,裏面有很多結構。 現在我想要一個子結構取出並存儲在其他結構中。

typedef struct 
{ 
    int a; 
}A; 

typedef struct 
{ 
int b; 
}B; 

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

我想聲明第四結構提取從C 我做了我的memcpy,它是唯一的辦法?

幫助將是非常讚賞

感謝 Huzaifa

回答

-1

應該只能夠抓住dummy1的參考。

typedef struct { A dummy1; } D; 

C var1; 
D var2.dummy; 
(*var2.dummy) = &var1.dummy1; 
+0

它拋出編譯錯誤。 'dummy':不是'D'的成員( (* var2.dummy)=&var1.dummy1;) 語法錯誤:缺少';'之前'。'對於(D var2.dummy;) – user437777 2010-09-02 10:04:25

+0

在C中沒有引用'''運算符的地址 – qrdl 2010-09-02 10:06:24

+0

-1:它只是'C var1; D var2; var2.dummy1 = var1.dummy1;'。 – 2010-09-02 11:59:46

1

您可以指定結構。所以:

typedef struct 
{ 
    A blah1; 
    B blah2; 
    /* Other members here */ 
} D; 

C c; 
D d; 
... 
d.blah1 = c.dummy1; 

是完全沒問題的。

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; 

}