title: Compile error: with request not something structure or union error
body: <p>In this program, I am trying to create a struct, and then initialise a array with that struct type, put name and ages into the array, and print out the results. However, when I compile the file, it says that "names" and ages" are not something structure or union. Can anyone spot my errors please. Thank you </p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  
  /* these arrays are just used to give the parameters to 'insert',
     to create the 'people' array */
  char *names[7]= {"Simon", "Suzie", "Alfred", "Chip", "John", "Tim",
            "Harriet"};
  int ages[7]= {22, 24, 106, 6, 18, 32, 24};
  
  
  /* declare your struct for a person here */
  typedef struct{
    char *names;
    int ages; 
  }  person;
  
  static void insert (person **p, char *s, int n) {
  
     *p = malloc(sizeof(person));
  
    static int nextfreeplace = 0;
  
    /* put name and age into the next free place in the array parameter here */
      (*p)-&gt;names=s;
      (*p)-&gt;ages=n;
  
    /* modify nextfreeplace here */
    nextfreeplace++;
    }
  
  int main(int argc, char **argv) {
  
    /* declare the people array here */
     person *p[7];
  
     //insert the members and age into the unusage array. 
    for (int i=0; i &lt; 7; i++) {
      insert (&amp;p[i], names[i], ages[i]);
      p[i]= p[i+1];
    }
  
    /* print the people array here*/
    for (int i=0; i &lt; 7; i++) {
      printf("name: %s, age:%i\n", p[i].names, p[i].ages);
    }
  
  }
  </code></pre>