我在这里定义了一个结构
typedef struct {
char name[10];
int idBadge;
} Employee;
我想使用这个函数调用填充这个结构的一个实例:
void EmployeeCall (char *name, int badgeNumber, Employee *E){
    E = (Employee *)malloc(sizeof(Employee));
    strcpy(E->name,name);
    E->idBadge = badgeNumber;
}
然后,我想使用这样的调用来检索给定的信息:
int EmployeeBadge (Employee E){
    return(E.idBadge);
}
我从我的 Main bellow 中调用这些函数:
int main(void){
    Employee a;
    int badgeNumber;
    int badgeNumberA = 1028;
    char *namePtrA = "Fred";
    EmployeeCall( namePtrA, badgeNumberA, &a );
    badgeNumber = EmployeeBadge(a);
    printf("%d\n",badgeNumber);
    return 0;
}
当我调用它们时,它们都可以正确编译,但是 EmployeeBadge 的返回值不正确。它返回 int,就好像没有任何东西放入结构中一样;徽章编号 = 32767
如何创建一个可以通过值和引用传递的结构变量?我是否需要另一个 Employee 变量作为指针并将 Employee a 分配给它以用于 EmployeeCall 函数?