Win32 API나 COM의 variable-length struct를 사용해보신 분이라면, 익숙하실, size 1의 array member에 관한 설명입니다.
Why do some structures end with an array size 1?
http://blogs.msdn.com/oldnewthing/archive/2004/08/26/220873.aspx
한편, Zero-length array (정확히는 Flexible array member)의 지원은 C99부터군요. gcc에서는 3.0부터 extension으로 C/C++에서 지원해왔다고 하는군요.
http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
C++ standard 쪽에도 병합되었는지는… 모르겠습니다. C++98 까지는 분명히 지원되지 않는 것 같습니다. C++03쪽을 확인해보고 업데이트 하겠습니다.
http://david.tribble.com/text/cdiffs.htm