Ir para conteúdo
Fórum Script Brasil
  • 0

Struct + Vetor + Ponteiro = Duvida


fernando_ott

Pergunta

Eu preciso passar por ponteiro um struct de vetor..

struct dados dado[30]; por exemplo....

Este código que fiz para exemplo, está dando erro apenas na linha

ptr = &vet;

Outro problema, não sei se esta ligado ao de cima, é que ao compilar este código, se i=5 o programa da erro e pede para fechar (windows) e i != 5 aparece lixo...

printf("%s",*(p+i)->nome);

#include <stdio.h>

struct dados {

char nome[30];

int num;

};

struct dados vet[10];

void teste(struct dados *p)

{

int i=5; // o i altera, só para exemplo mesmo...

printf("%s",*(p+i)->nome);

}

main()

{

struct dados *ptr;

ptr = &vet;

strcpy(vet[5].nome,"bola");

teste(ptr);

}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

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.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...