1
I cannot access the memory and bring the Value. The caroname variable also gives the same message.
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
struct carros{
int id;
char *placa[8];
char *nome[50]; *
float totalPagar;
char *dataHora[80];
char *dataEntrega[80];
int alugado;
int *valorDiaria;
int qtdDiaria;
char *locadorNome[60];
}Carro[5];
void cadastrarCar();
void carrosDisp();
void efetuarLocacao();
double calculoDiarias(int qtdDiarias, int valorDiaria, int idoso, int parceira);
void emitirNota(double valorTotal, char dataHora[50], char dataDevolucao[50], char placaCarro[8], char nomeCliente[50], char carro[50]);
void cadastrarCar(){
Carro[0].id = 1;
Carro[0].placa[8] = "JET-9885";
Carro[0].nome[50] = "Fiat Uno 1.0 - Basico";
Carro[0].alugado = 0;
Carro[0].valorDiaria = 50;
Carro[1].id = 2;
Carro[1].placa[8] = "JRT-5231";
Carro[1].nome[50] = "Grand Siena Completo";
Carro[1].alugado = 0;
Carro[1].valorDiaria = 70;
Carro[2].id = 3;
Carro[2].placa[8] = "JGT-2533";
Carro[2].nome[50] = "Gol G5 - Completo";
Carro[2].alugado = 0;
Carro[2].valorDiaria = 60;
}
The other part of my code is
void efetuarLocacao(char msg[200]){
limparConsole();
// mensagem para erro ou aviso
printf("%s", msg);
int i, cod, qtdDiaria, valorTotal, cortesia=0, parceiraOng=0, idoso=0;
char nomeProp[60], strIdoso[1];
strIdoso[1] ='n';
nomeProp[60] = NULL;
// HORA E DATA DE AGORA
time_t time_raw_format;
struct tm * ptr_time;
char buffer[80];
char dataDevolucao[80];
char dia[15];
char mes[15];
char ano[15];
time ( &time_raw_format );
ptr_time = localtime ( &time_raw_format );
strftime(buffer,80,"%d/%m/%Y %X",ptr_time);
strftime(dia,15,"%d",ptr_time);
strftime(mes,15,"%m.",ptr_time);
strftime(ano,15,"%Y",ptr_time);
// CARROS DISPONIVEIS EM TELA
printf("Carros disponiveis: \n");
carrosDisp(0);
printf("=================================================\n");
printf("Digite o codigo do carro a ser alugado:\n");
scanf("%d",&cod);
for(i=0;i<20; i++){
if(Carro[i].id == cod){
if(Carro[i].alugado == 0){
// VALICADAÇÃO SE A EMPRESA E PARCEIRA DA ONG
if(parceiraOng == 0){
char strEmpresa[1];
printf("Empresa parceira da ONG? s/n: \n");
scanf("%s", &strEmpresa);
if(strcmp(strEmpresa, "s") == 0)
parceiraOng = 1;
else
parceiraOng = 0;
}
qtdDiaria=1;
// QUANTIDADE DE DIARIAS A ALUGAR
if(qtdDiaria == 1){
printf("Digite a quantidade de diaria(s) que ira alugar: \n");
scanf("%d", &qtdDiaria);
Carro[i].qtdDiaria = qtdDiaria;
}
// NOME DO LOCATARIO
if(nomeProp[60] == NULL){
printf("Digite o nome do cliente: \n");
scanf("%s", &nomeProp);
Carro[i].locadorNome[60] = nomeProp;
}
idoso=0;
// VALIDAÇÃO PARA IDOSO
if(idoso == 0){
printf("O cliente e idoso? s/n: \n");
scanf("%s", &strIdoso);
if(strcmp(strIdoso, "s") == 0)
idoso = 1;
else
idoso = 0;
}
// DIARIA DE CORTERSIA
if(qtdDiaria >= 5){
printf("Você ganhou uma diaria cortesia, deseja usa-la? Digite '1' para SIM e '0' para NAO\n");
scanf("%d", &cortesia);
}
Carro[i].dataHora[80] = buffer;
// DATA E HORA DA DEVOLUÇÃO
time_t now = time( NULL);
struct tm now_tm = *localtime( &now);
struct tm t = now_tm;
t.tm_mday += qtdDiaria+cortesia;
t.tm_mon = t.tm_mon-1;
mktime(&t);
dataDevolucao[80] = asctime(&t);
strftime(dataDevolucao,80,"%d/%m/%Y %X",&t);
Carro[i].dataEntrega[80] = dataDevolucao;
Carro[i].totalPagar = calculoDiarias((int)qtdDiaria, (int)Carro[i].valorDiaria, idoso, parceiraOng);
Carro[i].alugado = 1;
// EMITIR NOTA FISCAL
char *placa[8];
placa[8] = Carro[i].placa[8];
char nomeCarro[50];
nomeCarro[50] = Carro[i].nome[50];
emitirNota(Carro[i].totalPagar, buffer, dataDevolucao, placa[8], nomeProp[60], Carro[i].nome[50]);
}
else
efetuarLocacao("**** Carro selecionado ja esta alugado.\n**** Por favor selecione um novo carro\n\n");
}
}
}
I cannot bring the amazed amount in Car[i]. name[50]
nomeCarro[50] = Carro[i].nome[50];
Where I use Car[i]... does not send any value to my function, only error
emitirNota(Carro[i].totalPagar, buffer, dataDevolucao, placa[8], nomeProp[60], Carro[i].nome[50]);
You know that putting the index on the left side is indicating that you want to put in the variable
nomeCarro
in position50
of the vector a character, check?nomeCarro[50]
refers to the character but you are trying to force an array on it. And this cannot end well. Not to mention the position50
is invalid for variable– Jefferson Quesado
I’m new in C and I don’t understand. I could explain again.
– Daniel Vasconcelos