En primer lugar, creo que el tamaño del double cambia según el compilador, pero creo que en la mayoría de los casos son 8 bytes.
Por lo tanto, el array de char debería tener (8*numero_de_double) bytes.
si tienes
Código:
double var1;
double var2;
char *matriz;
Para copiarlos, utiliza simplemente un memcpy
Código:
memcpy(matriz,&var1,sizeof(double));
memcpy(matriz+sizeof(double),&var2,sizeof(double));
Si utilizas C++, a lo mejor tienes que hacer algún cast por el medio (matriz es de tipo puntero a char, y sizeof(double) devolvería un entero)