另一種可能是把變長的元素聲明為很大, 而不是很小; 在上例中:
... char namestr[MAXSIZE];MAXSIZE 比任何可能存儲的 name 值都大。但是, 這種技術似乎 也不完全符合標準的嚴格解釋。這些 ``親密'' 結構都必須小心使用, 因為只有程序員知道它的大小, 而編譯器卻一無所知。
C99 引入了 ``靈活數組域'' 概念, 允許結構的最後一個域省略數組大小。 這為類似問題提供了一個圓滿的解決方案。
參考資料: [Rationale, Sec. 3.5.4.2]; [C9X, Sec. 6.5.2.1]。
翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)