#include <stdlib.h>

#define NAME_LEN 20

struct name {
    char *first_name;
    char *last_name;
};

int main(void)
{
    struct name *name_1 = malloc(sizeof(struct name)); // εννοείται θέλουν ελέγχους
    name_1->first_name = malloc(NAME_LEN);
    name_1->last_name  = malloc(NAME_LEN);

    //...

    free(name_1);//  Τι θα συνέβαινε αν κάναμε εδώ free το name_1;
    free(name_1->first_name);
    free(name_1->last_name);
    //free(name_1);

    return 0;
}