Ir para o conteúdo
lugh

Parâmetros por referência

Mensagens Recomendadas

lugh    0
lugh

Boas!

#include <stdio.h>
#include <stdlib.h>

void data(int *dia, int *mes, int *ano);

int main(void)
{
  int dia, mes, ano;
  data(&dia, &mes, &ano);
  printf("[dd-mm-aa]:%d %d %d\n", dia, mes, ano);
  system("PAUSE");	
  return 0;
}



void data(int *dia, int *mes, int *ano) {
  printf("Dia?\n");
  fflush(stdin);
  scanf("%d", &dia);
  printf("Mes?\n");
  fflush(stdin);
  scanf("%d", &mes);
  printf("Ano?\n");
  fflush(stdin);
  scanf("%d", &ano);     
}

Como é que posso fazer para os valores chegarem (como deve de ser) ao main?

Obrigado!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrosorio    5
pedrosorio

Repara que nos scanf não tens que usar o endereço das variáveis, mas sim o conteúdo, porque dia, mes e ano dentro da função data estão definidos como apontadores.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
lugh    0
lugh

Obrigado pedrosorio!

Assim sendo fica,

#include <stdio.h>
#include <stdlib.h>

void data(int *dia, int *mes, int *ano);

int main(void)
{
  int dia, mes, ano;
  data(&dia, &mes, &ano);
  printf("[dd-mm-aa]:%d %d %d\n", dia, mes, ano);
  system("PAUSE");	
  return 0;
}



void data(int *dia, int *mes, int *ano) {
  printf("Dia?\n");
  fflush(stdin);
  scanf("%d", dia);
  printf("Mes?\n");
  fflush(stdin);
  scanf("%d", mes);
  printf("Ano?\n");
  fflush(stdin);
  scanf("%d", ano);     
}

Cheers!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade