&n is float*, the address of a float variable, not a pointer to pointer.
Originally Posted by eXeCuTeR
Consequently, float* is not int*, therefore I use a cast to turn that float* into int*.
Casting turns the type on the right side into the type on the left side. It does not take the address.
Look at this:
The output is:
float f = 1.0f;
memcpy(&n, &f, sizeof(int*));
n = (int*)&f;