我在这里定义了一个结构
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 函数?