Je sais pas s'il existe une fonction, c'est probable que ce soit le cas. Autrement tu peux jouer avec les malloc (c'est pas très classe je penses ^^ ):
double d1 = 8.1;
char c1;
c1 = (char)malloc(8);
memcpy(&c1,&d1,8);
double d2;
memcpy(&d2,&c1,8);
cout << d2 << endl;