Ir para conteúdo
Fórum Script Brasil

Gatito Galaxys

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre Gatito Galaxys

Gatito Galaxys's Achievements

0

Reputação

  1. passagem de parâmetro com struct, observe como declarei a struct TLivros! #include <stdio.h> #include <stdlib.h> typedef struct livros { int ISBN; char titulo[20]; char editora[20]; char local_pub[20]; char data_pub[20]; char primeiro_autor[20]; char segundo_autor[20]; } TLivros; int main() { int i; TLivros *p; // p = &TLivros; p = (TLivros*)malloc(10*sizeof(TLivros)); for(i=0; i<10; i++) { printf("Informe o titulo do livro %d:", i); scanf("%s", p.titulo); } for(i=0; i<10; i++) { printf("Informe a data de publicacao do livro %d:", i); scanf("%s", p.data_pub); } return 0; }
  2. Por passagem de parâmetro, se liga na declaração TLivros[10], o [10] que interfere se tu vai usar seta ou não! Havia outras coisas erradas, como a struct. #include <stdio.h> #include <stdlib.h> typedef struct livros { int ISBN; char titulo[20]; char editora[20]; char local_pub[20]; char data_pub[20]; char primeiro_autor[20]; char segundo_autor[20]; } TLivros[10]; int main() { int i; TLivros *p; // p = &TLivros; p = (TLivros*)malloc(10*sizeof(TLivros)); for(i=0; i<10; i++) { printf("Informe o titulo do livro %d:", i); scanf("%s", p->titulo); } for(i=0; i<10; i++) { printf("Informe a data de publicacao do livro %d:", i); scanf("%s", p->data_pub); } return 0; }
  3. A passagem de parâmetro já está sendo feita, não precisa do asterístico! printf("%s",*(p+i)->nome); fica printf("%s",(p+i)->nome); Veja que (p+1) é a 1ª struct. Pela teoria da struct devemos colocar um ponto para acessar o conteúdo da struct, não concorda?! Se assemelha ao que você quer fazer de ponteiro para struct, para você acessar o conteúdo struct com um ponteiro, devíamos colocar um asterico na frente para indicar o valor e o ponto para indicar acesso a struct...mas a "banda não toca assim"! Logo o asterísco e o ponto são interpretados como seta! Ou seja para PEGAR O VALOR ACESSANDO A STRUCT devemos usar a seta ao invés de um asterístico e um ponto. *p.nome não funciona, mas (*p).nome funciona, e: (*p).nome é a mesa coisa de p->nome ai sim você estaria acessando a string (ou valor) da struct...ou seja, (*(p+1)).nome = (p+1)->nome.
×
×
  • Criar Novo...