typedef struct inventory
{
char *name;
int quantity;
double price;
struct inventory* next_inventory;
} invent;
int main(void)
{
invent *one=malloc(sizeof(invent));
invent *two=malloc(sizeof(invent));
invent *three=malloc(sizeof(invent));
one->next_inventory=two;
two->next_inventory=three;
three->next_inventory=NULL;
one->name=malloc(256);
...(repeat two->name, three->name)
printf("name: ");
scanf("%s", one->name);
printf("qunatity: ");
scanf("%d", &one->quantity);
printf("price: ");
scanf("%lf", &one->price);
...(repeat scanf() for two, three)
while(one!=NULL)
{
printf("%s %d %.0f\n", one->name, one->quantity, one->price);
printf("check\n");
one=one->next_inventory;
}
free(one->name);
free(two->name);
free(three->name);
free(one);
free(two);
free(three);
return 0;
free(one->name); doesn't work. I checked another free(), using printf("check");, two->name, three->name, one ... its worked. Why only free(one->name) doesn't work? What can I do for solve this problem? Give me the advice.