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

Como Um Struct Array Como Parâmetro Para Uma Função


cron

Pergunta

Sou novo nessa linguagem e estou com a seguinte dúvida: Eu fiz um array de uma struct e gostaria de fazer uma função que aceitasse struct como parâmetro:

#include<iostream>
namespace using std;

//Uma struct array
struct aluno{
char nome[40];
int matricula;
float nota;
};

int main(){
int quantidade;
cout << "Digite o numero de alunos: ";
cin >> quantidade;

//Criando um array para struct
struct aluno alu[quantidade];

cout << "Entre com os dados do(s) aluno(s): "

//AGORA EU GOSTARIA APENAS DE UMA FUNÇÂO QUE RECEBE a struct como parametro e capture os dados de cada array

return(0);
}
Então , alguém sabe se uma função pode receber uma struct ou se tem outro metodo de se fazer isso? Espero que me ajudem =**** Já tentei coisas como :
void cand(int que){
       struct cand c[que];
       for(int i=0;i<que;i++){
               cout << "\nNome: ";
               cin.get(c[i].name,40);
               cout <<  "\nMatricula: ";
               cin >> c[i].mat;
               cout << "\nPontos: ";
               cin >> c[i].pts;
               }
       }
e
void (struct *,int){
     .
     .
     .
    }

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

veja esse exemplo:

#include<iostream>

using namespace std;

void leitura (struct aluno *, int);
void escreve_tela (struct aluno *, int);

//Uma struct array
struct aluno{
   char nome[40];
   int matricula;
   float nota;
};

int main(){
   int quantidade;
   cout << "Digite o numero de alunos: ";
   cin >> quantidade;

//Criando um array para struct
   struct aluno alu[quantidade];

   cout << "Entre com os dados do(s) aluno(s): ";

   leitura(alu, quantidade);
   escreve_tela(alu, quantidade);

   return(0);
}

void leitura (struct aluno *a, int quant){
   int i;
   for(i=0;i<quant;i++){
      printf("Digite o nome do aluno %i: \n", i);
      scanf("%s", a[i].nome);
   }
};

void escreve_tela (struct aluno *b, int quant){
   int i;
   for(i=0;i<quant;i++){
      printf("Aluno %i : %s\n", i, b[i].nome);
   }
};

Link para o comentário
Compartilhar em outros sites

  • 0

Digamos que a sua struct foi criada desta forma:

typedef struct _foo{
     int i;
     double d;
} foo;
para passar como parametro para uma funcao voce faz como voce faria com qualquer outro tipo:
void foo_function(foo f){
      /*seu codigo aqui*/
}
caso voce queira modificar uma struct dentro de uma funcao, voce deve passar um ponteiro para a funcao:
void foo_function(foo *f){
      /*seu codigo aqui*/
}

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado gente! Estou indo para a faculdade agora , e vou tentar usar esses metodos que vocês me passaram, depois volto aqui para dizer que deu certo =D

Bjos rs :P

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, era isso mesmo, obrigado. Para passar uma struct como parâmetro para uma função é necessário botar o nome da struct como parâmetro por struct é um tipo de dado =]

Bjundas

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Giovanny Ritchie
Bom, era isso mesmo, obrigado. Para passar uma struct como parâmetro para uma função é necessário botar o nome da struct como parâmetro por struct é um tipo de dado =]

Bjundas

:blush:

também XTAVA COM A MESMA DUVIDA AGRADECO AO FORUM...

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...