Estou com alguns problemas para entender o código sobre pilha do meu professor, poderiam me ajudar?
Primeiro, tem 2 estruturas ao invés de 1, que é o que eu estava acostumado a ver.
typedef struct noPDSE{void *dados; struct noPDSE *abaixo;}NoPDSE,*pNoPDSE;typedef struct PDSE{ int tamInfo; pNoPDSE topo;}PDSE;
int tamInfo deve ser o tipo do dado (int, char etc) mas no geral não entendo porque ele fez isso.
Segunda dúvida, função inserir.
int insere(pPDSE p, void *novo){ pNoPDSE temp; int ret = FRACASSO; if((temp=(NoPDSE *)malloc(sizeof(NoPDSE)))!=NULL) { if((temp->dados = (void *) malloc(p->tamInfo)) !=NULL ) { memcpy(temp->dados,novo,p->tamInfo); temp->abaixo=p->topo; p->topo=temp; ret = SUCESSO; } else free(temp); } return ret;
Foco nas duas linhas do If.
A primeira está alocando memória pra variável temp, mas a segunda eu não faço ideia do que faz.
Qualquer ajuda é bem vinda, obrigado!
Eduardo.