Ir ao conteúdo
  • Cadastre-se

Erro "Assignement makes pointer from integer without a cast"


Bat Fire

Posts recomendados

Pessoal estou começando a programar em C e ocorreu o seguinte erro:

(linha) 15 - [Warning] assignement makes pointer from integer without a cast

Segue o código completo do programa...

#include <stdio.h>

char DataInvalida30(dia,verifica_dia,verifica_mes)

int dia;

char *verifica_dia,*verifica_mes;

{

if ((dia > 30) || (dia < 1)){

printf("voce digitou uma data invalida!");

printf("\nDigite outra data\n\n");

verifica_dia='n';

verifica_mes='n';

}

else{

verifica_dia='s';

verifica_mes='s';

}

}

char DataInvalida31(dia,verifica_dia,verifica_mes)

int dia;

char *verifica_dia,*verifica_mes;

{

if ((dia > 31) || (dia < 1)){

printf("voce digitou uma data invalida!");

printf("\nDigite outra data\n\n");

verifica_dia='n';

verifica_mes='n';

}

else{

verifica_dia='s';

verifica_mes='s';

}

}

main()

{

int dia,mes,total_dias=0;

char verifica_dia='s', verifica_dia='s';

do

{

printf ("Digite o dia desejado:");

scanf ("%d",&dia);

printf ("\nDigite o mes desejado:");

scanf ("%d",&mes);

switch (mes){

case 12: DataInvalida31(dia,&verifica_dia,&verifica_mes);

break;

case 11: DataInvalida30(dia,&verifica_dia,&verifica_mes);

break;

case 10: DataInvalida31(dia,&verifica_dia,&verifica_mes);

break;

case 9: DataInvalida30(dia,&verifica_dia,&verifica_mes);

break;

case 8: DataInvalida31(dia,&verifica_dia,&verifica_mes);

break;

case 7: DataInvalida31(dia,&verifica_dia,&verifica_mes);

break;

case 6: DataInvalida30(dia,&verifica_dia,&verifica_mes);

break;

case 5: DataInvalida31(dia,&verifica_dia,&verifica_mes);

break;

case 4: DataInvalida30(dia,&verifica_dia,&verifica_mes);

break;

case 3: DataInvalida31(dia,&verifica_dia,&verifica_mes);

break;

case 2: if ((dia > 28) || (dia < 1)){

printf("voce digitou uma data invalida!");

printf("\nDigite outra data\n\n");

verifica_dia='n';

verifica_mes='n';

}

else{

verifica_dia='s';

verifica_mes='s';

}

break;

case 1: DataInvalida31(dia,&verifica_dia,&verifica_mes);

break;

default: printf("voce digitou uma data invalida!");

printf("Digite outra data\n\n");

verifica_mes='n';

break;

}

}

while (verifica_dia != 's' && verifica_mes != 's');

switch (mes){

case 12: total_dias=30;

case 11: total_dias+=31;

case 10: total_dias+=30;

case 9: total_dias+=31;

case 8: total_dias+=31;

case 7: total_dias+=30;

case 6: total_dias+=31;

case 5: total_dias+=30;

case 4: total_dias+=31;

case 3: total_dias+=28;

case 2: total_dias+=31;

case 1: total_dias+=dia;

break;

}

if (total_dias > 1)

printf("\n\nPassaram %d dias ate a data digitada.",total_dias);

else

printf("\n\nPassou apenas %d dia ate a data digitada.",total_dias);

fflush(stdin);

getchar();

}

Desde já agradeço pela ajuda..

Link para o comentário
Compartilhar em outros sites

Isso que você postou não é um erro é um aviso. O erro mesmo está em outra linha:

char verifica_dia='s', verifica_dia='s';

Você copiou e colou a variável verifica_dia e esqueceu de renomear para verifica_mes.

Não sei por qual livro/apostila você está estudando, mas esse modo de declaração de parâmetros já não é mais utilizado hoje em dia.

Outra coisa, o seu código quando compilado apresenta vários avisos referente a ponteiros.

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!