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

jose2

Estruturas

4 mensagens neste tópico

Como posso ver se uma estrutura tem dados armazenados  ou se simplesmente ta vazia?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não podes.

Ou melhor ... todas as estruturas têm sempre dados armazenados.

Esses dados podem é não ter significado.

struct Exemplo {
   int a;
   int b;
};

int main(void) {
   struct Exemplo exa, exb = {0, 0};
   /* o conteúdo de exa existe!
    * mas não tem significado */
   /* o conteúdo de exb é { a == 0; b == 0; } */
   return 0;
}

O que podes fazer é acrescentar um elemento à estrutura para indicar se os outros elementos têm valores válidos ou não. E nunca te esqueças de inicializar esse elemento ou de o actualizar sempre que necessário

struct Exemplo2 {
   int valido;
   int a;
   int b;
};

int main(void) {
   struct Exemplo2 exa = {0};
   struct Exemplo2 exb = {1, 0, 0};
   /* como exa.valido == 0, os outros elementos não têm significado */
   /* como exb.valido == 1, os outros elementos são a == 0 e b == 0 */
   return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes fazer printf de campos da estrutura, por exemplo printf("%d", exa.a), mas printf("%d", exa) mais dar o endereço da estrutura, o que não faz sentido.

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