Fgets de problemas stdin [C]

Estou escrevendo um programa que funciona com arquivos. Eu preciso ser capaz de inserir dados como estruturas e, eventualmente, lê-los. O problema que tenho no momento é com este código:

typedef struct {
    char* name;
    .....
}employeeRecord;
employeeRecord record;

char name[50];

if(choice == 1)
    {
        /*Name*/
        printf("\nEnter the name:");
        fgets(name,50,stdin);
        record.nameLength = strlen(name) -1;
        record.name = malloc(sizeof(char)*record.nameLength);
        strcpy(record.name,name);
        /*Other data, similar format...*/

Se eu quiser, por exemplo, nome do endereço e número de telefone e pedir cada um em uma linha (para que o endereço seja praticamente idêntico ao anterior, exceto substituindo 'name' pelo endereço), acho que ignora a entrada. O que quero dizer é que não tenho chance de inseri-lo. A saída é realmente Digite o nome: Digite o endereço: (e aqui é onde ele me solicita entrada)