fork(3) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define MAX 10
  5.  
  6. typedef struct pilha {
  7. int qnt;
  8. int dados[MAX];
  9. } Pilha;
  10. Pilha* cria() {
  11. Pilha *p = malloc(sizeof(Pilha));
  12. if (p != NULL) p->qnt = 0;
  13. return p;
  14. }
  15. void insere(Pilha *p, int valor) {
  16. p->dados[p->qnt] = valor;
  17. p->qnt++;
  18. }
  19. void exibe(Pilha *p) {
  20. for (int i = 0; i < p->qnt; i++) printf("%3d", p->dados[i]);
  21. }
  22. Pilha* inverte(Pilha *p) {
  23. Pilha *outra = cria();
  24. while (p->qnt > 0) {
  25. outra->dados[outra->qnt] = p->dados[p->qnt - 1];
  26. p->qnt--;
  27. outra->qnt++;
  28. }
  29. return outra;
  30. }
  31. int main() {
  32. Pilha *p = cria();
  33. insere(p, 32);
  34. insere(p, 45);
  35. insere(p, 78);
  36. exibe(p);
  37. p = inverte(p);
  38. printf("\n");
  39. exibe(p);
  40. }
  41.  
  42. //https://pt.stackoverflow.com/q/171352/101
Success #stdin #stdout 0s 4296KB
stdin
Standard input is empty
stdout
 32 45 78
 78 45 32