Ir ao conteúdo
  • Cadastre-se

Duvida em fazer método retornar vetor de struct


mayconguedes

Posts recomendados

Gente, 

 

Preciso de um método que me retorne um vetor de struct pronto para o main, segue abaixo como estou tentando fazer, só que da erro!
alguém ai pode me ajudar?

 

no caso eu não queria usar ponteiro no main... mais se não tiver jeito, serve uma solução com ponteiro para "Produto P" no main mesmo!

 

main.c

#include <stdlib.h>#include <stdio.h>#include "tipos.h"int main() {    Produto P = criaVet(20);     return 0;}
 
 

metodos.c

#include <stdlib.h>#include <stdio.h>#include "tipos.h"Produto criaVet(int max){    int i;    Protudo P[max];    for(i=0;i<max;i++){        P[i].codigo = i+1;        P[i].valor = i+10;    }     return P;}

 

 

tipos.h

typedef struct Produto{       int codigo;     float valor; }Produto;

 

Link para o comentário
Compartilhar em outros sites

Fiz assim e tb não funcionou... testei to jeito dos comentários tb e não deu certo.

 

 

main.c

#include <stdio.h>#include <stdlib.h>#include "tipos.h"int main() {//Produto P = criaVet(20);//Produto P[] = criaVet(20); Produto *P = criaVet(20); return 0;}
 

tipos.h

typedef struct Produto{     int codigo;     float valor   }Produto;
 
 

metodos.c

#include <stdio.h>#include <stdlib.h>#include "tipos.h"Produto *criaVet(int max) { int i;Produto *P malloc(max * sizeof(Produto));for(i=0;i<max;i++){p[i]->codigo = i+1;P[i]->valor = 10+i;}return P;}
Link para o comentário
Compartilhar em outros sites

@mayconguedes

 

Tente isso...

 

*criaVete(int max)

Produto *criaVet(int max){    int i;    Produto *P;    P =(Produto *)malloc(max*sizeof(Produto)); //(Produto *)....    for(i=0;i<max;i++){        P[i].codigo = i+1;        P[i].valor = i+10;    }     return P;}

main();

int main() {    Produto *P = criaVet(20); //ponteiro    return 0;}

obs: Nao testei..

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...