title: zero length arrays
body: <p>Recently I came across a structure definition,</p>
  
  <pre><code>struct arr {
      int cnt;
      struct {
          int  size;
          int *name;
      } list[0];
  };
  </code></pre>
  
  <p>and now I don't know the reason for <code>list[0]</code> being declared. What I am interested in is why is this used. Does it have any advantage? If yes, what is it? </p>