title: Array with only 1 element storing more than it should
body: <p>My code is as follows:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;string.h&gt;
  
  typedef struct{
  
      char ID[1];
      char Content[4];
  }
  
  int main(){
  
      DATA z[1];
      DATA t;
      int c1, c2;
  
      scanf("%c",z[1].ID);
      scanf("%s",z[1].Content);
  
      printf("\n");
  
      c1=strlen(z[1].ID);
      c2=strlen(z[1].Content);
  
      t=z[1];
  
      printf("t:\n");
      printf("%s\n",t.ID);
      printf("%s\n",t.Content);
  
      printf("\n");
  
      printf("z:\n");
      printf("%s\n",z[1].ID);
      printf("%s\n",z[1].Content);
  
      printf("\n");
  
      printf("Length of z's ID: %d.\n",c1);
      printf("Length of z's Content: %d.\n",c2);
  }
  </code></pre>
  
  <p>And this is what I get when executing it:</p>
  
  <pre><code>8
  3092
  
  t:
  83092
  3092
  
  z:
  83092
  3092
  
  Length of z's ID: 5.
  Length of z's Content: 4.
  </code></pre>
  
  <p>I don't know why the ID has more than 1 element when it should only have 1.
  Please help, because I need to fix this for a project I'm working on.
  Thanks.</p>