gpt4 book ai didi

c - main 中未声明的结构字段

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:32 25 4
gpt4 key购买 nike

大家好,我正在编写一个 C 程序,我想要一个结构数组 malloc 并用文件中的数据填充。这是我的结构类型定义:

typedef struct {
char name[5];
int age;
} person;

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

  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] );

}

现在不幸的是,当我尝试编译时,我得到了 name 和 age are undeclared in main 的错误。我以前从未尝试过使用 fscanf 来制作结构,但我在这里有点不知所措。在此先感谢任何知道任何事情的人!

最佳答案

你只是不小心把你的语法弄反了(事实上,索引指针返回一个实际的结构,而不是指向它的指针,所以不需要指向成员运算符 -> 的指针):A[i].name&(A[i].age)。同时检查 fopen 的返回值可能是个好主意。

关于c - main 中未声明的结构字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5149701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com