结构字段在主要部分未声明

Nic*_*ick 0 c malloc struct scanf

嘿所有,我正在编写一个C程序,我想要一个malloc'd up的结构数组,并填充文件中的数据.这是我的struct的typedef:

typedef struct {
   char name[5];
   int age;
} person;
Run Code Online (Sandbox Code Playgroud)

然后在我的主要功能中我这样做:

  person *A ;
  int  i ;
  FILE * fin;

  fin = fopen( "people", "r" );

  A = ( person * ) malloc( sizeof(person) * 10 );
  if ( A == NULL ) { printf( "Error mallocing \n" ) ; return -1 ; }

  for( i = 0; i < 10; i++ ) {

    fscanf( fin, "%s %d", name->A[i], age->A[i] );

  }
Run Code Online (Sandbox Code Playgroud)

现在不幸的是,当我尝试编译时,我得到的错误是名称和年龄在主要未申报.我以前从未尝试过使用fscanf制作结构,但我在这里有点亏.提前感谢任何知道任何事情的人!

use*_*379 5

你只是意外地向后获取了你的语法(并且指针指针返回一个实际的结构,而不是指向它的指针,因此->不需要指向成员运算符的指针):A[i].name&(A[i].age).检查返回值fopen可能是个好主意.