Boa Tarde Alguem poderia me ajudar com a resolução deste exercicio.
Criar uma estrutura , contendo nome, data de nascimento e CPF. Crie uma variável que é um ponteiro para esta estrutura (no programa principal). Depois crie uma função que receba este ponteiro e preencha os dados da estrutura e também uma uma função que receba este ponteiro e imprima os dados da estrutura. Finalmente, faça a chamada a esta função na função principal.
Posteriormente,
Idem a questão acima, mas construa as funções usando referências (&).
//Codigo dando erro
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
typedef struct{
char nome[60];
char cpf[20];
char nascimento[15];
}TipoCadastro;
int i;
TipoCadastro EfetuaCadastro(TipoCadastro *Cad, int tamanho){
Cad=(TipoCadastro*)malloc(sizeof(TipoCadastro)*tamanho);
for(i=0;i<tamanho;i++){
printf("\nInforme o Nome:");
fgets(Cad.nome,60,stdin);
setbuf(stdin,NULL);
printf("\nInforme o CPF no formato NNN.NNN.NNN-NN:\n");
fgets(Cad.cpf,20,stdin);
setbuf(stdin,NULL);
printf("\nInforme a Data De Nascimento no formato DD/MM/AAAA:\n");
fgets(Cad.nascimento,20,stdin);
setbuf(stdin,NULL);
}
return *Cad;
}
void ExibeCadstro(TipoCadastro *Cad, int tamanho){
int i;
for(i=0;i<tamanho;i++){
printf("\nInforme o Nome:%s",Cad.nome);
printf("\nInforme o CPF no formato NNN.NNN.NNN-NN:%s\n",Cad.cpf);
printf("\nInforme a Data De Nascimento no formato DD/MM/AAAA:%s\n",Cad.nascimento);
}
}
int main(){
setlocale(LC_ALL,"portuguese");
int n;
typedef TipoCadastro *Cadastro;
printf("\nInforme quanto Cadastros Deseja Realizar:\n");
scanf("%d",&n);
Cadastro=EfetuaCadastro(&Cadastro,n);//ERRO
ExibeCadastro(Cadastro,n);/ERRO
return 0;
}