Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Victor Cometti

Alocação dinâmica em struct c

Recommended Posts

Boa noite,

criei essa struct

typedef struct{
    char nome[50];
    int idade;
    float salario;
    char endereco[50];
    char ---o;//está bloqueando a palavra s_e_x_o
}empregado;

e estou criando ela dessa forma

empregado *e[0]; 

e na alocação dinâmica assim

e[n] = (empregado *)malloc(sizeof(empregado));  

Só que os tipos de dados int e float, ou seja idade e salário não estão sendo alterados, somente os char

estou inserindo valores dessa forma

    printf ("Digite o nome: ");     
    scanf("%s", &e[n]->nome);
    printf ("Digite a idade: ");
    scanf("%i", &e[n]->idade);
    printf ("Digite o salario:");
    scanf("%f", &e[n]->salario); 
    printf ("Digite o endereco: ");
    scanf("%s", &e[n]->endereco);
    printf ("Digite o ---o(M/F): ");//imaster está bloqueando a palavra s_e_x_o
    scanf("%s", &e[n]->---o);//imaster está bloqueando a palavra s_e_x_o

Na hora de imprimir eu vejo que tipos de dados int e float continuam com seu valor inalterado.

 

Aguardo costumeiro apoio!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, estou impossibilitado de usar um compilador no momento, mas a minha sugestão é ao invés de ler strings com o scanf, tente ler com o gets(variável); adicione a include no topo

#include <string.h>

Em seguida faça a leitura das Strings com o gets(); exemplo:

gets(e[n]->nome);

Teste aí e veja se deu certo ou se era isso que você queria.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.