Título: Preguntas de noob en C Publicado por: Rotula en 12 Abril 2013, 02:30 am Buenas gente!
:D Bueno, os cuento, no controlo C, estoy haciendo un cursillo de introducción y tal. Nos han enviado unos ejercicios para entregar, y anque los he acabado, hay un programa en concreto que hace cosas raras que no entiendo. Lo peor es que no sé como buscarlo, he dado mil vueltas y ni idea. Es difícil buscar algo si no sabes cómo se llama, y por aquí ya son las 2 am, por hoy me he rendido y os vengo a pedir ayuda T_T Son dos problemas. Por un lado tengo una variable que debería ir dentro del main (o eso es lo que me dice el sentido comun), pero si la declaro dentro del main, más tarde dentro de un while el valor se pone a 0 en cada iteración, O_o Si la declaro como variable global, esto no pasa o_O Y el segundo problema es parecido. Tengo una estructura de datos, y un array de esa estructura. Pues en algun momento del programa el primer campo del primer elemento del array se pone a 0. Con los demás elementos del array no pasa, y si cambio el orden en que declaro los campos de la estructura, siempre es el primero que se pone a 0. ¿Es normal esto? ¿Sabéis porqué pasa y cómo se puede evitar? :S No sé si pegar el código o no, la verdad es que me da vergüenza, mientras buscaba lo mio entre en el tema de "cosas que no hay que hacer", y yo hago unas cuantas xD Además son unas 240 línas (contando comentarios y saltos de línea). Bueno, os pongo el main por si algún alma caritativa entiende qué hago mal :) Las funciones son practicamente asignaciones y ya... Muchas gracias de antemano! :D Código
Título: Re: Preguntas de noob en C Publicado por: rir3760 en 12 Abril 2013, 03:29 am Con esta llamada:
Código La función scanf almacena en la dirección indicada por "&op" una palabra (secuencia de caracteres diferentes de espacio blanco), a continuación de esta almacena un '\0'. El problema aquí es que "op" solo puede almacenar un carácter mientras que scanf por fuerza almacenara al menos dos (un carácter cualquiera y el '\0'). A partir de ese momento (la llamada a función) cualquier cosa puede pasar, incluyendo el comportamiento que mencionas. La forma correcta es: Código
Un saludo Título: Re: Preguntas de noob en C Publicado por: Rotula en 12 Abril 2013, 10:33 am Ostia, ciertamente Rir, ciertamente.
Muchas gracias, te quiero pero que muy mucho :D |