fork download
  1. #include <stdio.h>
  2.  
  3. struct No {
  4. struct No* prox;
  5. char valor;
  6. };
  7.  
  8. struct Pilha {
  9. struct No* topo;
  10.  
  11. };
  12.  
  13. void empilhar(struct Pilha* pilha, char valor) {
  14. struct No* novoNo = malloc(sizeof(struct No));
  15.  
  16. novoNo->valor = valor;
  17. novoNo->prox = pilha->topo;
  18. pilha->topo = novoNo;
  19. }
  20.  
  21. void desempilhar(struct Pilha* pilha) {
  22. pilha->topo = pilha->topo->prox;
  23. }
  24.  
  25. int main() {
  26. struct Pilha p1;
  27. printf("%c\n", p1.topo);
  28. printf("%p\n", p1.topo);
  29.  
  30. empilhar(&p1, 'E');
  31. printf("%c\n", p1.topo->valor);
  32.  
  33. empilhar(&p1, 'O');
  34. printf("%c\n", p1.topo->valor);
  35.  
  36. desempilhar(&p1);
  37. printf("%c\n", p1.topo->valor);
  38.  
  39. desempilhar(&p1);
  40. printf("%p\n", p1.topo);
  41.  
  42. return 0;
  43. }
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout

(nil)
E
O
E
(nil)