Hola a todos!
Es mi primer mensaje en este foro y espero que se ajuste correctamente a sus normas. Antes de nada os doy las gracias por anticipado a todos. Espero que alguien pueda darme una pista porque he probado ya un montón de cosas y la verdad no veo dónde me "cuelo".
Debo poder manejar una pila de cartas i en la función de apilarlas me da error en asignar el puntero a la cabeza de la pila al nuevo nodo. El trozo de código es:
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
int Empilar (tPila *pila, tCarta *carta) {
tNode *nuevo;
if (EsVaciaPila(pila)) {
nuevo = (tNode *) malloc (sizeof(tNode));
if (nuevo != NULL) {
nuevo->carta = *carta;
nuevo->seguent = NULL;
pila->cap = nou;
return 0;
}
else {
printf ("Error en la assignación de memoria.\n");
printf ("\n Finalizamos el programa.\n");
exit(1);
}
}
else {
nuevo = (tNode *) malloc (sizeof(tNode));
if (nuevo != NULL) {
nuevo->carta = *carta;
nuevo->seguent = pila->cap;
pila->cap = nou;
return 0;
}
else {
printf ("Error en la assignación de memòria.\n");
printf ("\n Finalizamos el programa.\n");
exit(1);
}
}
}
Las estructuras son:
typedef struct {
int pal;
int num;
}tCarta;
typedef struct {
tCarta carta;
struct tNode *seguent;
}tNode;
typedef struct {
tNode *cap;
}tPila;
<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
Creo que el problema que cuelga el programa es esta asignación pero... Seguiré probando...
Muchas gracias por la ayuda!!!
Saludos a todos.