You don't need to do this - you can use the same math the compiler uses to calculate indicies and wrap it in a function for convenience if you want. Making a copy like this will be terribly inefficient for simple direct memory access.
LB is right, but if you still need to do it, use &dummy[0][0][0] instead of &dummy as the third argument of copy(). It expects an output iterator where it can write an int: a pointer to int works, a pointer to a a 3D array doesn't.