Um exemplo simples de pilha em C.
#include <stdio.h>
#define SIZE 10
int pop();
void push(int i);
int *tos, *p1, stack[SIZE];
int main(int argc, char **argv)
{
int value;
tos = stack;
p1 = stack;
do{
printf("Digite o valor(0 para ver o topo):");
scanf("%d", &value);
if(value !=0)
push(value);
else
printf("\nO valor do topo eh: %d\n", pop());
}
while(value != -1);
return 0;
}
void push(int i){
p1++;
if(p1==(tos+SIZE))
{
printf("\nStack overflow");
}
*p1 = i;
}
int pop(){
if(p1==tos){
printf("\nStack overflow");
}
p1--;
return *(p1+1);
}