2013-12-08 156 views
0

我有這樣的代碼:指針內結構

typedef struct s1{ 
    void *x; 
} s1; 

typedef struct s2{ 
    unsigned char y[5]; 
} s2; 

s1 *s1_g; 
s2 *s2_g; 

我想要做的是指針X指向變量y。

我試着這樣做:

s1_g->x = s2_g->y 

,但在部分細分誤差

任何人都可以告訴我嗎?

回答

1

如果這是所有的代碼,那麼你甚至沒有初始化s1_gs2_g。因此,解除引用它們無疑會導致分割錯誤。

0

指針位置應該有一個有效的對象。因爲在s1_g上沒有有效的對象,所以在取消引用它們時行爲是未定義的。