title: What's the need of array with zero elements?
body: <p>In the Linux kernel code I found the following thing which I can not understand.</p>
  
  <pre><code> struct bts_action {
           u16 type;
           u16 size;
           u8 data[0];
   } __attribute__ ((packed));
  </code></pre>
  
  <p>The code is here: <a href="http://lxr.free-electrons.com/source/include/linux/ti_wilink_st.h">http://lxr.free-electrons.com/source/include/linux/ti_wilink_st.h</a></p>
  
  <p>What's the need and purpose of an array of data with zero elements?</p>