Buscar

Struct passagem por referencia?

Alguem pode me ajudar como que passo um vetor de struct por referencia em uma função?

💡 5 Respostas

User badge image

Ciro Meneses

#include <stdio.h>
#include <stdlib.h>

typedef struct { /*estrutura a ser gravada no arquivo */
  int n;
} numeros;


int main() {
  numeros v[10];

  preenche_vetor_struct(v, 10);
  imprime_vetor_struct(v, 10);

  system("pause");
  return 0;
}

void preenche_vetor_struct(numeros *v, int tam) {
  int i;

  for (i = 0; i < tam; i++)
    v[i].n = i;

}

void imprime_vetor_struct(numeros *v, int tam) {
  int i;

  for (i = 0; i < tam; i++)
    printf("%d ", v[i].n);

}

1
Dislike0
User badge image

Patrick Coelho

Muito obrigado!

0
Dislike0
User badge image

Andre Smaira

Para a resolução desse problema foi necessário conhecimentos em algoritmos básicos e linguagem C.


Logo abaixo vemos um exemplo de como passar um vetor de struct por referência:

#include <stdio.h>

typedef struct

{

char modelo[30];

float potenciaMotor;

int anoFabricacao,

numPortas;

}CARRO;

void Exibe(CARRO car)

{

printf("\n\tExibindo carro\n");

printf("Modelo: %s\n", car.modelo);

printf("Motor: %.1f\n", car.potenciaMotor);

printf("Ano: %dn", car.anoFabricacao);

printf("%d portas\n", car.numPortas);

}

void Preenche(CARRO *car)

{

printf("Modelo do carro: ");

gets( car->modelo );

printf("Motor: ");

scanf("%f", &car->potenciaMotor);

printf("Ano: ");

scanf("%d", &car->anoFabricacao);

printf("Numero de portas: ");

scanf("%d", &car->numPortas);

}

int main(void)

{

CARRO fusca;

Preenche(&fusca);

Exibe(fusca);

return 0;

}

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais