If I have the following code:
struct Person *person = malloc(sizeof (struct Person));
person->name = "Ed";
*person = (struct Person) {.age=40, .country="GB"};
Would the third statement wipe out the name? If so, is there any way to ignore or inherit any existing fields when using a compound literal, or does it wipe out all previous fields and recreate it from whatever was supplied (nullifying anything that wasn't supplied)?