Because it&#x27;s a widely-used hack that predates optimizers&#x27; obsessive exploitation of undefined behavior, it&#x27;s become part of the language&#x27;s customary semantics and is supported everywhere I know of.<p>C99 adds a feature called flexible array members.  If the final member of a struct is an array with no length (blank rather than zero), you&#x27;re allowed to use the array to access memory after the struct with the appropriate subscripts.