Ver Mensaje Individual
  #16 (permalink)  
Antiguo 28/05/2006, 10:41
pitukilloloco
 
Fecha de Ingreso: mayo-2006
Mensajes: 40
Antigüedad: 18 años, 7 meses
Puntos: 0
Eso de poner
Código:
struct Nodo *nuevo = (struct Nodo *)malloc(sizeof(struct Nodo));
o
Código:
struct Nodo *nuevo = malloc(sizeof(struct Nodo));
depende de los niveles que tenga tu compilador cuando trata los avisos (warnings) y los errores. En muchos compiladores cuando les pones el nivel mas alto al verificar los errores que puedas tener en tu codigo la construccion struct Nodo *nuevo = malloc(sizeof(struct Nodo)); simplemente no la pasan y la tratan como si de un error se tratara y no te genera el ejecutable. Si le bajas el numero de nivel esta construccion puede que solo te de un warning pero si te genera el programa o puede que simplemente no te diga nada al respecto. Seguramente esos compiladores que mencionas por defecto tienen un nivel no muy estricto en la comprobacion de este tipo de construcciones y por eso no te arroja ningun aviso. Lo que pasa es que cuando usas malloc este te devuelve un apuntador a void por lo cual lo puedes asignar a una variable que apunte a cualquier cosa y es muy propenso a que puedas a cometer un error si te descuidas, y si este es el caso, solo vas a detectar los errores cuando estes ejecutando el programa, pero muchas veces puede que tu programa funcione bien algunas veces y otras no, lo cual hace muy dificil detectar en el codigo donde esta el error.