&gt; A zero size array is better thought of as a pointer to that part of the struct, ...<p>An array of any size is best thought of as an array. Arrays are not pointers. (See section 6 of the comp.lang.c FAQ, <a href="http:&#x2F;&#x2F;www.c-faq.com&#x2F;." rel="nofollow">http:&#x2F;&#x2F;www.c-faq.com&#x2F;.</a>)<p>A zero size array is best thought of as illegal (if you want portability) or as a compiler-specific extension (if you don&#x27;t mind depending on a particular compiler, perhaps gcc).