opa vlw jonathan e ronaldo malz por inxer o saco de vocês '-' ainda ta dando um erro ronaldo nossa agora misturei , tinha olhado o outro exemplo. vo ve se ajeito o código aqui. editando o tópico... abraços to usando o código com base no exemplo de jonathan ok #include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Pilha
{
char nome[20];
struct Pilha *embaixo;
}pilha, tElemento;
pilha* empilhar()
{
int numero;
pilha *tElemento;
printf("\nQuantos nomes?: ");
scanf("%d",&numero);
for(numero;numero>0;numero--)
{
tElemento = ((pilha*)malloc(sizeof(pilha)));
printf("Nome: ");
scanf("%s", tElemento -> nome);
return tElemento;
}
}
void desempilhar(pilha *tElemento)
{
pilha *ponteiro;
int numero;
printf("desempilhar: ");
scanf("%d",&numero);
for(numero;numero>0;numero--)
{
if(tElemento == NULL)
{
ponteiro = tElemento;
tElemento = tElemento -> embaixo;
free(ponteiro);
}
}
}
void listar(pilha *tElemento)
{
if(tElemento != NULL){
if(tElemento){
printf("\nNome: %s\n",tElemento -> nome);
getch();
}
}else
tElemento = tElemento -> embaixo;
}
void inicializa(pilha **tElemento){
*tElemento = NULL;
}
int main()
{
pilha*tElemento;
inicializa(tElemento);
int loop;
loop = 1;
int menu;
tElemento = empilhar();
while(loop==1){
printf("\n----MENU----\n");
printf("1- EMPILHAR: ");
printf("\n2- DESEMPILHAR: ");
printf("\n3- LISTAR: ");
printf("\n4- SAIR: \n");
printf("\nOPCAO: ");
scanf("%d",&menu);
switch(menu){
case 1:
empilhar(tElemento);
break;
case 2:
desempilhar(tElemento);
break;
case 3:
listar(&tElemento);
break;
case 4:
exit(1);
break;
default:
printf("\nopcao inexistenlwte\n \a");
}
}
} esse assunto de ponteiros pra mim é um saco '-' vo te que aprender isso meu heuhueaha