Título: Programa en C : ¿Por qué me salen estos símbolos? Publicado por: racsoraul en 9 Junio 2012, 04:42 am Hola. Tengo el siguiente problema:
He creado este programa que es un Árbol de Expresión, y pues bueno, lee la expresión infija, luego la guarda en el árbol, luego realizando un recorrido en orden muestra el resultado de la expresión guardada. Pero mi problema es de que este programa lo codifiqué en Ubuntu, y ahi me corre bien luego de compilado, pero luego al probarlo en Windows, el programa me compila bien y todo, pero me muestra unos códigos extraños y además hace que la respuesta de la expresión sea errónea. Aquí les muestro como se ve en Ubuntu: (http://i1061.photobucket.com/albums/t461/racsoraul/EnLinux.png) Aquí les muestro lo que me saca en Windows: (http://i1061.photobucket.com/albums/t461/racsoraul/EnWindows.png) Espero me puedan ayudar ya que es un royecto que me puede salvar la vida :S Acá queda el código y gracias de antemano. PD: En Ubuntu el IDE que usé para programar fue el Code::Blocks, el mismo utilicé en Windows para compilar el código. Código
Título: Re: Programa en C : ¿Por qué me salen estos símbolos? Publicado por: Arkangel_0x7C5 en 9 Junio 2012, 14:58 pm pues si para empezar inicializaras a zero o a algun valor conocido cuando haces esto: *a=malloc(sizeof(struct nodo));
Dejarían de salirte caracteres raros Saludos Título: Re: Programa en C : ¿Por qué me salen estos símbolos? Publicado por: racsoraul en 9 Junio 2012, 16:32 pm Pues dado a que ese "*a" es una estructura, por ejemplo a qué lo podría igualar?? Ya qué lo podría inicializar en NULL, pero con eso ya no cumpliría la condición que le sucede a esa instrucción.
También hasta donde tengo entendido, al haber usado "malloc" para asignar memoria, no debería de haber problema. Título: Re: Programa en C : ¿Por qué me salen estos símbolos? Publicado por: Arkangel_0x7C5 en 9 Junio 2012, 16:42 pm Pues dado a que ese "*a" es una estructura, por ejemplo a qué lo podría igualar? no hay problema si le das valor a todos los miembros de la estructura, pero si no lo haces. tendran un valor no definido. malloc no le da ningún valor especifico. Puedes usar "ZeroMemory(*a,sizeof(struct nodo))"Ya que hasta donde tengo entendido, al haber usado "malloc" para asignar memoria, no debería de haber problema. con esto se inicia liza toda tu estructura a zero Saludo Título: Re: Programa en C : ¿Por qué me salen estos símbolos? Publicado por: racsoraul en 9 Junio 2012, 16:49 pm Pero el inconveniente en este caso es de que al inicializar en "cero" la estructura, entonces ya no me cumpliría la condición posterior.
Título: Re: Programa en C : ¿Por qué me salen estos símbolos? Publicado por: Arkangel_0x7C5 en 9 Junio 2012, 16:59 pm si tu haces esto:
Código No tienes problema con ninguna condición. si lo decías por ese primer if, no pasaría nada porque lo que tu estas testeando es el valor del puntero a la estructura y no su contenido que es lo que modifica ZeroMemory Saludos Título: Re: Programa en C : ¿Por qué me salen estos símbolos? Publicado por: racsoraul en 9 Junio 2012, 17:15 pm :O Si, lo había entendido mal, gracias. Acabo de usar esa instrucción pero al compilar me da error....Qué librería debo de incluir para usar esa función?
Título: Re: Programa en C : ¿Por qué me salen estos símbolos? Publicado por: Arkangel_0x7C5 en 9 Junio 2012, 17:21 pm pues la de windows.h
Pero si lo prefieres mas estandar, usa memset http://www.cplusplus.com/reference/clibrary/cstring/memset/ Saludos Título: Re: Programa en C : ¿Por qué me salen estos símbolos? Publicado por: racsoraul en 9 Junio 2012, 17:31 pm Muchísimas gracias man, ya me ha funcionado :) Me habéis salvado la vida.
Gracias! Título: Re: Programa en C : ¿Por qué me salen estos símbolos? Publicado por: fary en 10 Junio 2012, 05:00 am muy bueno... grande Arkangel!!!
|