Hola, tengo que hacer un tda pila con una lista simplemente enlazada y cuando ejecuto este tester :
int main()
{
tPila p;
crearpilanueva(&p);
apilar(1,&p);
apilar(2,&p);
apilar(5,&p);
mostrarPila(p);
return 0;
}
me funciona bien pero si mando algun prinf en el medio o cualquier cosa me deja de andar y no entiendo porque :S
aca les dejo parte del tdapila
typedef struct Pila{
int elem;
struct Pila* next;
}*tPila;
crearpilanueva(tPila* p) {
*p= (tPila) malloc(sizeof(struct Pila));
(*p)->next=NULL;
(*p)->elem=NULL;
}
int estavacia(tPila P) {
int res=0;
if (P->elem==NULL) {
res=1;
}
return res;
}
void apilar (int a, tPila* p){
tPila* nueva;
crearpilanueva(nueva);
(*nueva)->elem= a;
(*nueva)->next= (*p);
(*p)=(*nueva);
}
void mostrarPila(tPila p) {
tPila aux=p;
while (aux->elem!=NULL) {
printf(" el elemento es :%i \n", aux->elem);
aux= aux->next;
}
}