title: error: Parameter name omitted in C for structs
body: <p>Some what new to coding in C, I have tried looking at other posts on stack about omitted names but cannot seem to find any based around struct parameters in C. This code is just a fragment from the .C file, which uses a header file (AssignBst.h) and is implemented in a main file:</p>
  
  <pre><code> /* Used to insert the struct student into an array position, in order
      based upon the numerical ordering of their I.D's within the array.
      The Array being an array of structs declared in the .h file.
  */
  void insert_array(struct student) /* Line22, Error points to here for omitted*/
  {
  
  int total_mem_req = 0;
  int i=1;
  struct student temp;    
  
  if(i&lt;= n_students)
  {
      if(students[i].ID==0)
      {
          students[i].name = (char *) malloc(sizeof(char)*strlen(student.name));
          strcpy(students[i].name,student.name);
          students[i].ID = student.ID;
          /* copy binary tree*/
          return;
      }
  
      if((students[i] &lt; student.ID) &amp;&amp; (students[i+1] &gt; student.ID)) /* Currently at location before desired insertion point*/
      {
          insert_array(student);
          total_mem_req = strlen(student.name);
          malloc(total_mem_req + 17); /* Added 17 bytes to account for the integer */         
          temp=students[i+1];
          students[i+1] = student;
          student=temp;
      }
  
      if((students[i].ID &lt; student.ID) &amp;&amp; (students[i+1].ID &lt; student.ID)) /*if the current value and the next value in the array are less than the ID stored in student then increment i*/
      {
          i++;
      }
  
  }   
  n_students++;  /* Increments the total number of students in the array*/
  return;
  </code></pre>
  
  <p>}    </p>
  
  <p>When I compile this, I get the errors: </p>
  
  <pre><code>AssignBst.c: In function ‘insert_array’:
  AssignBst.c:22: error: parameter name omitted
  AssignBst.c:32: error: ‘student’ undeclared (first use in this function)
  AssignBst.c:32: error: (Each undeclared identifier is reported only once
  AssignBst.c:32: error: for each function it appears in.)
  </code></pre>
  
  <p>The struct student is declared in the header file:</p>
  
  <pre><code>    struct student
      {
          int ID;
          char *name;
          node_ptr units;
      };
  </code></pre>
  
  <p>and the prototype in the .h for the insert array method:</p>
  
  <pre><code>void insert_array(struct student); /*For inserting ID and name into the array*/ 
  </code></pre>