Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取存储在struct中的值?_C_Struct - Fatal编程技术网

如何获取存储在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);
}