Ver Mensaje Individual
  #7 (permalink)  
Antiguo 30/08/2010, 10:33
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 7 meses
Puntos: 61
Respuesta: porque cambiar mi resultado cada vez q ejecuto el programa???

sizeof(float) > sizeof(int).

printf escribe tantos bytes como el tamaño del float, pero recibe solo los bytes del entero que se pasa como parametro.

Suponiendo que el tamano de un float es 8 y el de un int es 4.
Si yo fuera printf y me pidieran escribir 8 bytes ( %f ) pero me pasan solo 4, hay varias opciones para imprimir los 4 que no recibi:
- tomarlas del stack, el que varia de una ejecucion a otra
- hacerlas 0
- escribir cualquier basura de la memoria.

El usuario no tiene por donde reclamar que no hice lo que me pidieron (escribir 8 bytes) con la entrada que recibi: 4.