Mundo De Nilton
Um ponteiro para as estruturas poderia ser declarado da seguinte maneira, supondo que struct ficha_pessoal já exista: struct ficha_pessoal *p;
Os ponteiros para uma estrutura funcionam como os ponteiros para qualquer outro tipo de dados no C. Para usá-lo, haveria duas possibilidades. A primeira é apontá-lo para uma variável struct já existente, da seguinte maneira: struct ficha_pessoal ficha; struct ficha_pessoal *p; p = &ficha;
A segunda é alocando memória para ficha_pessoal usando, por exemplo, malloc():
#include
main(){ struct ficha_pessoal *p; int a = 10; /* Faremos a alocação dinâmica de 10 fichas pessoais */ p = (struct ficha_pessoal *) malloc (a * sizeof(struct ficha_pessoal)); p[0].telefone = 35236170; /* Exemplo de acesso ao campo telefone da primeira ficha apontada por p */ free(p);
}
Se apontar o ponteiro p para uma estrutura qualquer (em p = &ficha; ) para acessar um elemento da estrutura pode-se fazer:
(*p).nome
Os parênteses são necessários, porque o operador ‘.’ (Ponto) tem precedência maior que o operador * . Porém, o formato mais usado e comum de se fazer é acessar o elemento nome através do operador seta, que é formado por um sinal de "menos" (-) seguido por um sinal de "maior que" (>), isto é: -> . p->nome //declaração é muito mais fácil e concisa
Exercitando
1) crie uma estrutura declare um ponteiro, e em seguida faça uma função que armazene memória em tempo de execução, crie pelo menos três elementos do tipo, cadastre e liste os elementos.
2) Seja a seguinte struct: struct Produto { char nome[30]; // Nome do produto int codigo; // Codigo do produto float preco; // Preco do produto
};
1. De um apelido para essa estrutura.
2. Crie agora a mesma aplicação usando um ponteiro ao invés de uma matriz, faça a alocação de memória em tempo de execução para que se possa armazenar n produtos.
3. Faça um menu para escolher uma letra e