Ir ao conteúdo

Posts recomendados

Postado

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.

Postado

A variável tamInfo não é o dado. Ele é o tamanho em bytes da váriavel dados. A segunda linha do if aloca essa variável com o tamanho passado.

  • Curtir 1
Postado

Foi só uma maneira de se fazer diferente. Ele usa uma estrutura para representar o nó da pilha e a outra para ser a própria pilha.

Eu usaria uma única struct neste caso.

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!