Why flexible array member must be at end of struct but struct with flexible array not? : <p>Some struct with flexible array:</p>

<pre><code>struct SomeArray { unsigned length; int array[]; };
</code></pre>

<p>This code gcc (ver. 4.9.2) compiling with no errors:</p>

<pre><code>struct s1{ unsigned length; SomeArray some_array; const char * string; } ss1;
</code></pre>

<p>How this work?</p>
