Ni struct
declaración está permitido por la norma C. 6.7.2.1 (8) en n1570:
If the struct-declaration-list does not contain any named members, either directly or via an anonymous structure or anonymous union, the behavior is undefined.
y el párrafo 18 en la misma sección:
As a special case, the last element of a structure with more than one named member may have an incomplete array type; this is called a flexible array member. In most situations, the flexible array member is ignored. In particular, the size of the structure is as if the flexible array member were omitted except that it may have more trailing padding than the omission would imply.
(énfasis mío)
miembros de la matriz flexibles no están permitidos en C++, por lo que la el código tampoco es válido C++.
Como no es un código válido, los valores informados por sizeof
para estos no tienen sentido.
Es extraño, 'sizeof' nunca puede ser _0 _... –
@ K-ballo: para arreglos flexibles como' char x [] 'sizeof es 0. – Tudor
@Tudor: matrices flexibles, ¿eso es una extensión del compilador? –