c - Freeing Allocated Memory From A Struct -


i sending struct food function thats job free allocated memory of struct not struct itself.

the struct looks this:

struct food{ char * name; char * foodgroup; double calories; char type; struct food * next; }; 

the char *name , char *foodgroup memory allocated in function.

struct food* temp = malloc(sizeof(struct food)); temp->name = malloc(sizeof(temp->name));       /*error?*/ temp->foodgroup = malloc(sizeof(temp->name));  /*error?*/ temp->next = malloc(sizeof(struct food)); 

the function frees allocated memory looks this:

void destroyelement(food *theelement) {     free(theelement->name);  /*error*/     free(theelement->foodgroup);   /*error*/ } 

i used print statements determine location of segmentation fault , looks in destroyelement function.

instead of malloc(sizeof(temp->name)), try malloc(sizeof(thing want put in temp->name).

it seems trying take sizeof(temp->name), thing trying malloc in first place (if temp->name being malloced right now, it's size?)

does make sense?

if not, feel free email judi, or ask on bucky. ;)


Comments

Popular posts from this blog

javascript - AngularJS custom datepicker directive -

javascript - jQuery date picker - Disable dates after the selection from the first date picker -