problema taductor sufijo2infijo
Publicado por cucuhuevo (1 intervención) el 14/04/2006 12:41:04
Mi problema, es bastante largo en cuestión. Soy programador de C novato, estudio ingeniería informática y estoy en 1º de carrera, asíque no se prácticamente nada.
El caso es que se nos ha pedido realizar un programa driver traductor de expresiones sufijo a infijo y de expresiones infijo a sufijo, mediante el uso de una pila.
Una vez que consiga sacar infijo2sufijo, sacaría el resto, pero me he atascado ahí, llevo toda la semana pegándome con ello y no consigo sacarlo.
El problema es que la pila, almacena punteros a char, y mi programa, cuando hace una traducción parcial, mete esa traduccion parcial con un puntero que se llama pValor. Cuando el bucle realiza una traduccion parcial, antes de haber extraido de la pila otra traduccion parcial que tenga anterior metida en la pila, como el contenido de pValor se modifica para la nueva traduccion parcial y la pila no guarda el contenido de una cadena, si no un puntero, al modificarse pValor, me modifica, dentro de la pila, los datos almacenados como pValor.
¿Esto podría solventarse mediante una reserva dinámica de memoria para la pila?
¿Si es así, alguien puede explicarme como y en que consiste la reserva de memoria dinámica?
El código necesita de varios archivos, por eso no lo he publicado aquí, pero si alguien quiere echarle un vistazo, que me lo diga y le paso todo el Workspace, con el código comentado donde me falla.
El caso es que se nos ha pedido realizar un programa driver traductor de expresiones sufijo a infijo y de expresiones infijo a sufijo, mediante el uso de una pila.
Una vez que consiga sacar infijo2sufijo, sacaría el resto, pero me he atascado ahí, llevo toda la semana pegándome con ello y no consigo sacarlo.
El problema es que la pila, almacena punteros a char, y mi programa, cuando hace una traducción parcial, mete esa traduccion parcial con un puntero que se llama pValor. Cuando el bucle realiza una traduccion parcial, antes de haber extraido de la pila otra traduccion parcial que tenga anterior metida en la pila, como el contenido de pValor se modifica para la nueva traduccion parcial y la pila no guarda el contenido de una cadena, si no un puntero, al modificarse pValor, me modifica, dentro de la pila, los datos almacenados como pValor.
¿Esto podría solventarse mediante una reserva dinámica de memoria para la pila?
¿Si es así, alguien puede explicarme como y en que consiste la reserva de memoria dinámica?
El código necesita de varios archivos, por eso no lo he publicado aquí, pero si alguien quiere echarle un vistazo, que me lo diga y le paso todo el Workspace, con el código comentado donde me falla.
Valora esta pregunta


0