As said in http://www.fftw.org/fftw3_doc/Complex-numbers.html#Complex-numbers you must use reinterpret_cast to convert from double to fftw_complex. I guess this is one of the few cases that it is an adviced use.
It says too that fftw_complex is defined as:
typedef double fftw_complex[2];
so, the correct way to transverse you loop is by doing the following:
for (int i=0; i<4; i++)
{
fftw_complex* in = reinterpret_cast<fftw_complex*>(&x[i]);
cout << (*in)[0] << " " << (*in)[1] << endl;
}
UPDATE
You can also keep your in pointer definition as done before and interating you for loop doing this:
for (int i=0; i<4; i++)
{
cout << (in[i])[0] << " " << (in[i])[1] << endl;
}