Ошибка компиляции: с запросом не какая-то структура или ошибка объединения

В этой программе я пытаюсь создать структуру, а затем инициализировать массив с этим типом структуры, поместить имя и возраст в массив и распечатать результаты. Однако, когда я компилирую файл, он говорит, что «имена» и «возраст» не являются чем-то структурным или объединяющим. Может кто-нибудь заметит мои ошибки, пожалуйста. Спасибо

#include <stdio.h>
#include <stdlib.h>

/* 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)->names=s;
    (*p)->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 < 7; i++) {
    insert (&p[i], names[i], ages[i]);
    p[i]= p[i+1];
  }

  /* print the people array here*/
  for (int i=0; i < 7; i++) {
    printf("name: %s, age:%i\n", p[i].names, p[i].ages);
  }

}

Ответы на вопрос(2)

Ваш ответ на вопрос