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