Ir para conteúdo

POWERED BY:

Arquivado

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

beto.corujao

Erro ao passar ponteiro de struct como parametro

Recommended Posts

Olá,

 

 

Estou com problema no código abaixo, aparentemente está tudo correto, só que na hora de compiliar da a mensagem de erro:

 


agenda.cpp: In function ‘void cad_compromisso(const char*, const char*, const char*, const char*, const char*, const char*)’:
agenda.cpp:134: error: cannot convert ‘compromissos (*)[3]’ to ‘compromissos**’ for argument ‘5’ to ‘bool insere_comp(char*, short int, short int, char*, compromissos**)’

Não entendo muito de c++, ainda estou na faculdade, aliás o código refere-se a um trabalho.

 

Elaborar uma agenda com algumas funções utilizando struct, função e ponteiros.

 

 



#include<iostream>
#include<cstdlib>
#include<cstring>

using namespace std;

const int MAX_SUS = 50;
const int MAX_DESC = 200;
const int MAX_COMP = 3;


void imprime_menu();


void cad_compromisso(const char*, const char*, const char*,
		     const char*, const char*, const char*);

struct compromissos{

  int get_data;
  int get_hora;
  char sucinta[MAX_SUS];
  char descricao[MAX_DESC];
}; compromissos agenda[MAX_COMP];


bool insere_comp(char nome[MAX_SUS],short data,short hora, 
		 char descricao[MAX_DESC], compromissos* agendas[MAX_COMP]){ // --------------------- FUNÇÃO ONDE PRETENDO USAR A ESTRUTURA


};


int main()
{
  char opcao='z';

  for(int i=0; i<MAX_COMP;i++){
    agenda[i].get_data = -1;
    agenda[i].get_hora = -1;
    strcpy(agenda[i].sucinta, "");
    strcpy(agenda[i].descricao, "");
  }


    do{

      imprime_menu();

      cin >> opcao;

    switch(opcao){
      case 'a':{ // novo compromisso;

	cad_compromisso(" Digite o nome do compromisso (max 50 caracteres): ",
			" Digite a Data do compromisso: ",
			" Digite a Hora do compromisso: ",
			" Descreva o seu compromisso (max 200 caracteres): ",
			" Compromisso cadastrado com sucesso.",
			" Erro no cadastro do compromisso. ");
      break;
      }
      case 'b':{

      break;
      }
      case 'c':{

      break;
      }
      case 's':{

      break;
      }

    }
  }while(opcao!='s');


return EXIT_SUCCESS;
}

void imprime_menu(){

		  system("clear");

  cout << " =============== MENU COMPROMISSOS ============" 	<<
  endl << " =	a) Agendar novo compromisso 		 ="	<<
  endl << " =	B) Consultar compromissos 		 ="    	<<
  endl << " =	c) Mostrar os compromissos de hoje 	 ="    	<<
  endl << " =	s) Sair 				 ="	<<
  endl << " =============================================="	<<
  endl << endl << " >> ";
}

void cad_compromisso(const char* dig_sucinto, const char* dig_data,
		     const char* dig_hora, const char* dig_desc,
		     const char* sucesso, const char* erro){

    char nome[MAX_SUS], descricao[MAX_DESC];
    int data,hora;

	cout << dig_sucinto;

	  getline(nome, MAX_SUS);

	cout << endl << dig_data;

	  cin>> data;

	cout << endl << dig_hora;

	  cin>> hora;

	cout << endl << dig_desc;

	  getline(descricao,MAX_DESC);

	  if(insere_comp(nome, data, hora, descricao, &agenda)) //--------------------------------- LINHA DO ERRO
 	      cout << sucesso << endl;
	  else
	      cout << erro << endl;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.