• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pedrosorio

Obter tamanho de estrutura a partir de apontador

3 mensagens neste tópico

Imaginem que declaro uma estrutura e faço um typedef:

typedef struct pessoa *man;

struct pessoa {
    int idade;
    char nome[100];
    char morada[100];
};

Então man passa a ser um tipo de dados que é apontador para estrutura daquele tipo. Se quiser criar dinamicamente estruturas daquelas tenho que alocar memória, e para isso preciso do tamanho da estrutura. No entanto, se fizer sizeof(man) tenho apenas o tamanho de um apontador para aquela estrutura.

A pergunta é: tenho mesmo que escrever sizeof(struct pessoa) ou declarar um tipo que represente a estrutura e fazer sizeof desse tipo? I.e. não há maneira de obter o tamanho da estrutura a partir do tipo "apontador para a estrutura"?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, parece que não há mesmo maneira...

O único "truque" que consegui usar foi definir uma variável daquele tipo (apontador para estrutura) e fazer sizeof do objecto apontado por ele, aka:

man homem;
homem = (man) malloc(sizeof *homem);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora