Eu fiz como, ficará a passagem de Parâmetro?
#include <stdio.h>
#include <stdlib.h>
typedef struct{
char nome[30], ender[50];
int dia, mes, ano;
}PESSOA;
typedef struct{
PESSOA *pPessoa;
int qtdePessoas;
}LISTAPESSOA;
void menu(){
printf(“=================================\n”);
printf(“\tCADASTRO DE PESSOAS\n”);
printf(“=================================\n”);
printf(“[ 1 ] - Inserir registro: “);
printf(”\n[ 2 ] - Exibir Lista”);
printf(“\n[ 3 ] - Buscar registro:”);
printf(“\n[ 4 ] - Eliminar registro”);
printf(“=================================\n”);
}
void criarListaVazia(LISTAPESSOA *listaP){
listaP → pPessoa = (PESSOA )malloc(10sizeof(PESSOA));
listaP → qtdePessoas = 0;
}
void inserirRegistro(PESSOA pessoa, LISTAPESSOA *listaP, int pos){
int i;
if(listaP ->qtdePessoas == 10){
return -1; //indicativo de lista cheia
}
if(pos > listaP → qtdePessoas){
return -2;
}
for(i = listaP->qtdePessoas+i;i>=pos;i–){
memcpy((listaP->pPessoa+i),(listaP->qtdePessoas+i-1),sizeof(PESSOA));
memcpy((listaP->pPessoa+pos),&pessoa,sizeof(PESSOA));
(listaP->qtdePessoas)++;
}
}
int removerRegistro(LISTAPESSOA *listaP, int pos){
int i;
if(listaP->qtdePessoas ==0){
return -1;
}
if(pos >= listaP->qtdePessoas){
return -2;
}
for(i = pos;iqtdePessoas-1;i++){
memcpy((listaP->pPessoa+i),(listaP->pPessoa+i+1),sizeof(PESSOA));
(listaP->qtdePessoas)–;
}
}
int buscarRegistro(char *nome, LISTAPESSOA listaP, PESSOA *pessoa){
int i = 0;
if(listaP.qtdePessoas == 0){
return -1; // indicativo de lista vazia
}
for(i = 0; i < listaP.qtdePessoas;i++){
if(!strcmp(nome,(listaP.pPessoa+i)->nome)){
pessoa = (listaP.pPessoa+i);
return i;
}
}
return -2; // indicativo de registro não encontrado
}
int main()
{
PESSOA pessoa;
PESSOA* pPessoa = &pessoa;
int opcao = 0;
char procuraNome[30];
while(opcao != 5){
menu();
scanf("%d", &opcao);
int i = 0;
switch(opcao){
case 1:
for(i = 0; i < 10; i++){
printf("Informe o nome: ");
scanf("%s", &pessoa.nome);
printf("Informe o endereco: ");
scanf("%s", &pessoa.ender);
printf("Dia de nascimento: ");
scanf("%d",&pessoa.dia);
printf("Mes de nascimento: ");
scanf("%d",&pessoa.mes);
printf("Ano de nascimento: ");
scanf("%d",&pessoa.ano);
}
inserirRegistro(pessoa, pessoa, i);
//PESSOA pessoa, LISTAPESSOA *listaP, int pos
break;
case 2:
break;
case 3:
printf("Informe o nome: ");
scanf("%s",&procuraNome);
//buscarRegistro(procuraNome, LISTAPESSOA listaP, PESSOA *pessoa);
break;
}
}
/*strcpy(pessoa.nome,"Joao");
strcpy(pessoa.ender, "Rua Absalao, Jaco e Jacu, 2999");
pessoa.dia = 5;
pessoa.mes = 11;
pessoa.ano = 1975;
printf("Nome: %s\tEndereco: %s\t - Data de Nascimento: %d / %d / %d ", pessoa.nome, pessoa.ender, pessoa.dia, pessoa.mes, pessoa.ano);*/
return 0;
}