如何获取存储在struct中的值?
我试图从结构数组中检索值。我不知道取回它们的正确方法 这是我的结构:如何获取存储在struct中的值?,c,struct,C,Struct,我试图从结构数组中检索值。我不知道取回它们的正确方法 这是我的结构: struct entry{ char name[NAME_SIZE]; int mark; }; typedef struct entry Acct; Acct dism2A03[MAX_ENTRY]; 如何分配值: void add_new(char *name,int mark){ printf("%s,%d",name,mark); int v=0; v=entry_total
struct entry{
char name[NAME_SIZE];
int mark;
};
typedef struct entry Acct;
Acct dism2A03[MAX_ENTRY];
如何分配值:
void add_new(char *name,int mark){
printf("%s,%d",name,mark);
int v=0;
v=entry_total;
strcpy(dism2A03[v].name,name);
dism2A03[v].mark = mark;
}
我尝试的(不起作用):
intm=0;
对于(m=0;m>int-mark=dism2A03[m]),标记;
printf(“\n条目%d”,m);
printf(“%s”,名称);
printf(“%d”,标记);
}
错误:
p9t2.c:在函数“main”中:
p9t2.c:75:5:错误:初始值设定项无效您的第一次尝试意味着存在
getfield
函数,该函数接受struct
和多字符char
文本并获取字段;c中没有此类函数
您的第二次尝试更加接近:与其尝试将名称分配给数组,不如将其分配给char
指针,如下所示:
int m=0;
for(m=0;m<MAX_ENTRY;m++){
// Since you aren't planning on modifying name through pointer,
// you can declare the pointer const to make your intentions clear.
const char *name = dism2A03[m].name;
int mark = dism2A03[m].mark;
printf("\nEntry %d",m);
printf("%s",name);
printf("%d",mark);
}
intm=0;
对于(m=0;mDefine“不起作用”。我将在错误中编辑,谢谢!如何调用add_new
?char name=getfield(dism2A03[m],'name');
和char name[name\u SIZE]=dism2A03[m].name;
不使用SenseGraat。现在,您不能使用这样的字符串访问成员。非常感谢您,在进行了微小的更改后,它正在工作!!
int m=0;
for(m=0;m<MAX_ENTRY;m++){
// Since you aren't planning on modifying name through pointer,
// you can declare the pointer const to make your intentions clear.
const char *name = dism2A03[m].name;
int mark = dism2A03[m].mark;
printf("\nEntry %d",m);
printf("%s",name);
printf("%d",mark);
}