1
I want to print the "attribute" name of a "Person" type struct, but the printf
returns (null) but I declare the struct name.
Follow the code below:
typedef struct pessoa{
char *nome;
struct pessoa *pai;
struct pessoa *mae;
struct pessoa *filhos[4];
}Pessoa;
void imprimir_pai(Pessoa var){
printf("%s",var.pai->nome);
}
int main(void)
{
setlocale(LC_ALL,"");
Pessoa Rosa_var;
Pessoa JPaulo_var;
Pessoa Eraldo_var;
Pessoa Jeane_var;
Pessoa Erik_var;
Pessoa Jessica_var;
Pessoa Edilson_var;
Pessoa Ninho_var;
Pessoa Joana_var;
Pessoa Jan_var;
Rosa_var.nome="Rosa";
Rosa_var.pai=NULL;
Rosa_var.mae=NULL;
Rosa_var.filhos[0]=&Edilson_var;
Rosa_var.filhos[1]=&Eraldo_var;
Rosa_var.filhos[2]=&Ninho_var;
Rosa_var.filhos[3]=&Joana_var;
Rosa_var.filhos[4]=&Jan_var;
JPaulo_var.nome="José Paulo";
JPaulo_var.pai=NULL;
JPaulo_var.mae=NULL;
JPaulo_var.filhos[0]=&Edilson_var;
JPaulo_var.filhos[1]=&Eraldo_var;
JPaulo_var.filhos[2]=&Ninho_var;
JPaulo_var.filhos[3]=&Joana_var;
JPaulo_var.filhos[4]=&Jan_var;
Eraldo_var.nome = "Eraldo";
Eraldo_var.pai = &JPaulo_var;
Eraldo_var.mae = &Rosa_var;
Eraldo_var.filhos[0]=&Jessica_var;
Eraldo_var.filhos[1]=&Erik_var;
Eraldo_var.filhos[2]=NULL;
Eraldo_var.filhos[3]=NULL;
Eraldo_var.filhos[4]=NULL;
Jeane_var.nome = "Jeane";
Jeane_var.pai = NULL;
Jeane_var.mae = NULL;
Jeane_var.filhos[0]=&Jessica_var;
Jeane_var.filhos[1]=&Erik_var;
Jeane_var.filhos[2]=NULL;
Jeane_var.filhos[3]=NULL;
Jeane_var.filhos[4]=NULL;
Erik_var.nome = "Erik";
Erik_var.pai = &Eraldo_var;
Erik_var.mae= &Jeane_var;
Erik_var.filhos[0]=NULL;
Erik_var.filhos[1]=NULL;
Erik_var.filhos[2]=NULL;
Erik_var.filhos[3]=NULL;
Erik_var.filhos[4]=NULL;
Jessica_var.nome = "Jéssica";
Jessica_var.pai = &Eraldo_var;
Jessica_var.mae = &Jeane_var;
Jessica_var.filhos[0]=NULL;
Jessica_var.filhos[1]=NULL;
Jessica_var.filhos[2]=NULL;
Jessica_var.filhos[3]=NULL;
Jessica_var.filhos[4]=NULL;
imprimir_pai(Erik_var);
}
And I was also wondering if someone could explain to me how to start this array with all the null elements for everyone, to avoid code repetition, and without using malloc()