Juanii:

Muchas gracias por tu pronta respuesta. Aunque todavia
no comprendo muy bien como, lo he hecho funcionar
satisfactoriamente. Quiero decir que sería incapaz de
reproducir la sintaxis.

Con respecto a los int a,b y c en el stack, eso si lo
entiendo bien, lo hice asi solo para probar el stack.

Carlos

--- juanii <[EMAIL PROTECTED]> wrote:

> el problema es que al pop tendrias que pasarle un
> void **value y donde
> se asigna su valor, poner *value = top_node->value.
> esto se da porque estas pasando el puntero por
> valor, lo cambias
> dentro de la funcion, pero al salir de la funcion el
> valor se pierde.
> 
> hay otra cuestion mas sutil que es que en tu stack
> estas guardando
> punteros a enteros que estan almacenados... en el
> stack. aca no te
> causa problemas porque la misma funcion (el main) en
> la que pusheas
> haces el pop, pero por ejemplo si llamaras a una
> funcion que apila los
> valores y despues llamas a otra que los desapila
> seguramente vas a
> obtener un feo error. esto es asi porque al salir de
> la primer funcion
> el stack donde se guardaban las variables locales
> (los int) pasa a ser
> memoria de nadie, que se reutiliza cada vez que
> llamas a otra funcion.
> por ende, cuando desapiles tus valores, seguramente
> va a haber _otra_
> cosa (si es que tenes suerte y no se cuelga antes).
> lo que tendrias
> que hacer es reservar memoria con malloc() para los
> ints y guardar
> esos punteros para finalmente liberar con free()
> cuando los desapilas.
> 
> saludos



      
____________________________________________________________________________________
Looking for last minute shopping deals?  
Find them fast with Yahoo! Search.  
http://tools.search.yahoo.com/newsearch/category.php?category=shopping
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a