Ir ao conteúdo
  • Cadastre-se
FabioMonteiro

Como passar um vetor de ponteiros para uma função?

Recommended Posts

Olá pessoal, estou fazendo um ex da faculdade, que se resume em uma struct de livros, para adicionar código, titulo autor etc. Meu problema é o seguinte: eu criei um vetor de ponteiros, do tipo struct livros, e a medida que o usuario vai cadastrando o programa vai alocando memoria e atribuindo ao vetor. Só que eu quero fazer algumas funções pra simplificar algumas funcionalidades do programa mas eu nao sei como passar esse vetor de ponteiros para a função, ja tentei de varias maneiras mas nao deu certo. Uma solução que eu acho que daria certo e que não tentei ainda, seria declarar esse vetor como global, mas eu não quero fazer isso. Espero que possam me ajudar. Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar uma função do tipo LIVRO ponteiro de ponteiro, ou passar ponteiro para ponteiro como argumento.

Por exemplo, uma função do tipo LIVRO, ponteiro de ponteiro.


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

typedef struct livro{
char titulo[20], autor[20];
}LIVRO;

LIVRO **registra(int qtd){
int i;
LIVRO **r;
r = (LIVRO**)malloc(sizeof(LIVRO*) * qtd);
for(i = 0; i < qtd; i++){
r[i] = (LIVRO*)malloc(sizeof(LIVRO));
printf("Titulo %d: ", i + 1);
scanf("%s", r[i]->titulo);
printf("Autor %d: ", i + 1);
scanf("%s", r[i]->autor);
}
return r;
}

int main(void){
int i;
LIVRO **r= registra(5);
for(i = 0; i < 5; i++){
printf("%s, %s\n", r[i]->titulo, r[i]->autor);
}
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×