• Lunes 16 de Diciembre de 2024, 00:07

Autor Tema:  Ayuda Con La Función Modf  (Leído 1170 veces)

elcucuyo

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Ayuda Con La Función Modf
« en: Jueves 8 de Abril de 2004, 04:20 »
0
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;
}

Oliverio

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Re: Ayuda Con La Función Modf
« Respuesta #1 en: Jueves 8 de Abril de 2004, 07:38 »
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