【发布时间】:2018-02-08 17:49:31
【问题描述】:
我遗漏了一些东西,可能很愚蠢,但我已经没有任何想法了,我需要一些帮助。
#include <stdio.h>
#include <stdlib.h>
typedef struct person{
char name[10];
int *age;
} PERSON;
int main(){
int i, n;
scanf("%d", &n);
PERSON *arr = (PERSON*)calloc(n, sizeof(PERSON));
for(i = 0; i < n; i++){
gets(arr[i].name);
// scanf("%d", arr[i].age);
}
for(i = 0; i < n; i++){
printf("%s", arr[i].name);
// printf("%d", arr[i]->age));
}
return 0;
}
所以,我无法输入或读取任何结构的年龄。 我需要一个人的动态数组,在每个人中,我也需要一个新的动态数组(这是原始代码的简化版本,但错误是一样的)。
我已经评论了我最近的尝试,所以你可以看到我是如何尝试的。
我得到的错误是[Error] invalid type argument of '->' (have 'PERSON')。
【问题讨论】:
-
不要使用函数
gets;它已从标准中删除,这是有充分理由的。