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