SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: elcucuyo en Jueves 8 de Abril de 2004, 04:20
-
Hola tengo un codigo fuente que utiliza la función modf pero no me funcina; a la hora de compilar no muestra ningún error pero, cuando corro el programa se para y sale la pantalla de window que dice "se ha cometido un error y el programa deber finalizarse..." y termina; no mostrando nada
yo uso el compilador dev-c++ y tengo window xp (por si sirve de algo la información...) .
Otra cosa, alguien sabe que especificador de conversión puedo utilizar para emplear la función scanf (no se si es f o lf u otra).
este es el código fuente:
#include <stdio.h>
#include <math.h>
int main()
{
double valor = 7.568792, *iptr, resultado;
resultado = modf( valor, iptr );
printf( "modf( %f, %f ) = %f\n", valor, *iptr, resultado );
return 0;
}
-
Hola, tu problema reside en el uso que estas haciendo del punero *iptr, recuerda que un puntero es una variable que contiene una direccion de memoria.
Para poder usar tu codigo tal como esta le podes agregar una linea que reserve memoria dinamicamente para tu puntero:
#include <stdio.h>
#include <math.h>
int main()
{
double valor = 7.568792, *iptr, resultado;
iptr = new(double);
resultado = modf( valor, iptr );
printf( "modf( %f, %f ) = %f\n", valor, *iptr, resultado );
return 0;
}
O simplemete en lugar de declarar un puntero, declara una variable:
#include <stdio.h>
#include <math.h>
int main()
{
double valor = 7.568792, iptr, resultado;
resultado = modf( valor, &iptr );
printf( "modf( %f, %f ) = %f\n", valor, iptr, resultado );
return 0;
}
Espero que se haya entendido y te recomiendo que repases el uso de punteros