Copy string to struct

-1

When trying to copy the String nome into the String in the Struct novo->nome the program stops working, if I comment the function strcpy(novo->nome,nome); the code executes normally.

//Função de inserção:
lista *insere_lista(lista *l,char *nome,int idade){
    lista *novo = (lista *)malloc(sizeof(lista));

    strcpy(novo->nome,nome);
    novo->idade = idade;
    novo->proximo = l;
    return novo;
}

//Main:
int main(){
    int opc,idade;
    char *nome;

    lista *l;
    l = cria_lista();

    do{
        printf("\n1 - Inserir\n");
        printf("2 - Retirar\n");
        printf("3 - Mostrar\n");
        printf("4 - Busca\n");
        printf("0 - Sair\n");
        scanf("%d",&opc);

        if(opc == 1){
            printf("Digite o nome:");
            fflush(stdin);
            scanf("%s",&nome);
            printf("Digite a idade:");
            fflush(stdin);
            scanf("%d",&idade);

            l = insere_lista(l,nome,idade);
        }

        if(opc == 3){
            mostra_lista(l);
        }

    }while(opc!=0);
}

//Struct:
typedef struct lista{
    char *nome;
    int idade;
    struct lista *proximo;
}lista;

    
asked by anonymous 11.08.2017 / 16:58

1 answer

0

I solved the problem by switching scanf("%s",&nome); to gets(nome);

    
11.08.2017 / 18:10