title: Getting error for initializing a structure in C
body: <p>I am getting an error when trying to compile a C source file that uses a structure.
  I'm using gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 on Ubuntu 12.04 LTS.</p>
  
  <p>Here is the code:</p>
  
  <pre><code>/* struct.c: Illustrates structures */
  #include &lt;stdio.h&gt;
  #include &lt;string.h&gt;
  
  struct Hitter {
      char last[16];
      char first[11];
      int home_runs;
  };
  
  int main() {
      struct Hitter h1 = {"McGwire", "Mark", 70};
      struct Hitter h2;
      strcpy(h2.last, "Sosa");
      strcpy(h2.first, "Sammy");
      h2.home_runs = h1.home_runs - 4;
      printf("#1 == {%s, %s, %d}\n",
             h1.last, h1.first, h1.home_runs);
      printf("#2 == {%s, %s, %d}\n",
             h2.last, h2.first, h2.home_runs);
      return 0;
  }
  </code></pre>
  
  <p>and here is the error:</p>
  
  <pre><code>$ gcc -o struct struct.c
  struct.c: In function `main':
  struct.c:12:9: error: parameter `h1' is initialized
  struct.c:14:2: error: expected declaration specifiers before `strcpy'
  struct.c:15:2: error: expected declaration specifiers before `strcpy'
  struct.c:16:2: error: expected declaration specifiers before `h2'
  struct.c:18:2: error: expected declaration specifiers before `printf'
  struct.c:21:2: error: expected declaration specifiers before `printf'
  struct.c:23:2: error: expected declaration specifiers before `return'
  struct.c:24:1: error: expected declaration specifiers before `}' token
  struct.c:13:16: error: declaration for parameter `h2' but no such parameter
  struct.c:12:16: error: declaration for parameter `h1' but no such parameter
  struct.c:24:1: error: expected `{' at end of input
  </code></pre>
  
  <p>The above code is from the CD training course "Thinking in C" by Chuck Allison. I know that is a very old CD and I am sure the syntax of the structure must have changed, but I have no idea what it may be now. Your help is appreciated. 
  Thanks</p>