title: C Programming - Non static initialization of a flexible array member
body: <p>I think my english is just to bad to understand the other articles about this. But anyway:</p>
  
  <p>I just thought i could write a program (in C), that can store a set of cards.
  Not complicated, just store values and names of cards and print them out. 
  I'm a beginner in C, and because i'm in the section "Strings in Structures" in my Book, i wanted to try out structures on my own. This is my Code so far:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  struct card
  {
      int value;
      char name[];
  };
  
  int main(void)
  {
      const struct card heart[13] = { {2,"two"}, {3,"three"}, {4,"four"}, {5,"five"}, {6,"six"}, {7,"seven"}, {8,"eight"}, {9,"nine"}, {10,"ten"}, {11,"jack"}, {12,"queen"}, {13,"king"}, {14,"ace"} };
      int i;
  
      for (i = 0; i &lt; 13; ++i)
      {
          printf("The card heart-%s has the value of %i", heart[i].name, heart[i].value);
      }
  
  return 0;
  </code></pre>
  
  <p>}</p>
  
  <p>I just wanted to test if it works, so i just wrote the heart-cards in the code. If i want to compile this file, my compiler (gcc/mingw) hits me with 26 errors. It says: 
  "(near initialization of heart[0])"
  "non static initialization of a flexible array member"
  I don't really understand this. In the book, everything works as expected. I tried to rebuild the code in the book and changing the names, but it doesn't work. I think it's a problem with the strings, because if i use integers only, everything works. 
  In already read in another post, that every string should be allocated manually, and there was a code example, but i don't know what all the lines should mean, and i want understand what my code does, so i don't copy + paste. </p>
  
  <p>Could you explain me why this doesn't work?
  PS: I am writing currently in windows, so please don't use bash commands to explain or something like that.
  I am also german and my english is not the "yellow of the egg", try to explain without using complex 'sentence builds' (i hope you know what i mean :D) and unusual words.</p>
  
  <p>Thanks for all help!</p>