struct.c:50:2: aviso: passing argument 1 of ‘inicia’ from incompatible pointer type [habilitado por padrão]
struct.c:27:6: nota: expected ‘struct pessoa *’ but argument is of type ‘struct pessoa **’
Ficarei grato se me ajudarem!
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct Pessoa {
char nome[20];
int dataNasc[3];
int telefone;
} pessoa;
//Preenche o cadastro - OPERADOR SETA ->
void preencher(pessoa *cadastro) {
printf ("Digite um nome: ");
gets (cadastro->nome);
printf ("Digite a data de nascimento: ");
scanf ("%d/%d/%d", &cadastro->dataNasc[0], &cadastro->dataNasc[1], &cadastro->dataNasc[2]);
printf ("Digite o numero do celular: ");
scanf ("%d", &cadastro->telefone);
}
//Mostra o cadastro
void mostrar(pessoa *cadastro) {
printf ("%s\n", cadastro->nome);
printf ("%02d/%02d/%d\n", cadastro->dataNasc[0], cadastro->dataNasc[1], cadastro->dataNasc[2]);
printf ("%d\n", cadastro->telefone);
printf ("\n");
}
//Inicializa as estruturas.nome[0] com ''
void inicia(pessoa *cadastro, int tamanho) {
register int i;
for (i = 0; i < tamanho; i++) {
cadastro[i].nome[0] = '';
}
}
int main(void) {
pessoa *cadastro = NULL;
int i, qtde;
printf ("Digite a quantidade ");
scanf ("%d", &qtde);
fflush(stdin);
//Aloca x espaço para cadastro
cadastro = malloc(sizeof(pessoa) * qtde);
//Testa se realmente foi alocado
if (!(cadastro = malloc(qtde))) {
printf ("não alocou.");
exit(1);
}
inicia(&cadastro, qtde);
for (i = 0; i < qtde; i++) {
fflush(stdin);
preencher(&cadastro[i]); //Passo o endereço de cadastro para a função
}
for (i = 0; i < qtde; i++) {
mostrar(&cadastro[i]); //Passo o endereço de cadastro para a função
}
return 0;
}
Pergunta
tek6
Boa Noite! Não intendo o erro desse código:
struct.c: Na função ‘main’:
struct.c:50:2: aviso: passing argument 1 of ‘inicia’ from incompatible pointer type [habilitado por padrão]
struct.c:27:6: nota: expected ‘struct pessoa *’ but argument is of type ‘struct pessoa **’
Ficarei grato se me ajudarem!
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.