title: error: flexible array member not at end of struct
body: <p>My Struct looks like this:</p>
  
  <pre><code>typedef struct storage {
      char ***data;
  
      int lost_index[];
      int lost_index_size;
  
      int size;
      int allowed_memory_key_size;
      int allowed_memory_value_size;
      int memory_size;
      int allowed_memory_size; 
  
  } STORAGE;
  </code></pre>
  
  <p>The error im getting is "error: flexible array member not at end of struct". Im aware that this error can be solved by moving <code>int lost_index[]</code> at the end of struct. Why should flexible array member need to be at the end of struct? What is reason?</p>
  
  <p>As this is assumed duplicate of another question, actually i didn't find answers that i actually needed, answers in similar question dont describe the <strong>reason</strong> which stands behind compiler to throw error i asked about.</p>
  
  <p>Thanks</p>