[Solved] free() not working correctly with struct


It is always a good habit to set the pointer to NULL after freeing it.
Since the memory you are accessing is still intact you are seeing right values for l->val.

Node *l=malloc(sizeof(Node));
l->key="foo";
l->val="bar";
free(l);
l = NULL;

solved free() not working correctly with struct