2014-04-10 49 views
3

內部陣列結構的,爲什麼我不能做到這一點:一個結構

typedef struct _word{ 
     struct _word ws[ 28 ]; 
}Word; 

隨着代碼上面,我得到的錯誤:字段「WS」具有不完整的類型。

我爲什麼能做的只是這:

typedef struct _word{ 
     struct _word *wr[ 28 ]; 
}Word; 

我想靜態存儲器。

+0

這樣一個「Word」對象的大小是多少? (+1,但不是那麼清楚/有用的診斷錯誤) – effeffe

+1

無論如何,第一個版本是廢話。它應該做什麼?這是一個遞歸定義。 –

+3

無限迴歸:Word會有28個字。每個人將有28個字。而且每個人都會有28個字..... ad infintum。 –

回答

3

因爲如果您的結構未完全定義,則無法計算要分配的對象的大小。正如其他人所提到的那樣,試圖推斷物體的大小將是一個無限的迴歸。

但你可以隨時計算一個指針的大小。因此第二個版本起作用。