在此程序中,我試圖創建一個結構體,然後使用該結構體類型初始化一個數組,將名稱和年齡放入數組中,並打印出結果。然而,當我編譯文件,它說,「姓名」和年齡」是不是結構或聯合。任何人都可以發現我的錯誤,請,謝謝編譯錯誤:請求不是結構或聯合錯誤
#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);
}
}