Impossible to answer, since we don't know what you're trying to achieve. Are you copying from the 2D array to a single "slice" of the 3D array, or are you copying it to multiple slices? Are you mapping 2D pixels to exactly the same pixel in the slice, i.e. does 2D[p][q] get stored in 3D[slice][p][q]?

Is your 2D array really called "image3D"? Using misleading variable names is a great way to confuse yourself.