Trouble passing struct pointers in C to create a sequential list -
i have struct defined here
typedef struct { char name[10]; int idbadge; } employee; i want populate 1 instance of struct using function call:
void employeecall (char *name, int badgenumber, employee *e){ e = (employee *)malloc(sizeof(employee)); strcpy(e->name,name); e->idbadge = badgenumber; } and then, want retrieve given piece of information using call this:
int employeebadge (employee e){ return(e.idbadge); } i call these functions 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; } when call them, compiles correctly however, return on employeebadge incorrect. returns int if nothing placed struct; badgenumber = 32767
how possible create struct variable can passed both value , reference? need employee variable pointer , assign employee employeecall function?
you code should not need allocate new employee, change employeecall to
void employeecall (char *name, int badgenumber, employee *e){ strcpy(e->name,name); e->idbadge = badgenumber; }
Comments
Post a Comment