Copies data from an unmanaged memory pointer to a managed IntPtr array.
Unmanaged, C-style arrays do not contain bounds information, which prevents the startIndex and length parameters from being validated. Therefore, the unmanaged data that corresponds to the source parameter populates the managed array regardless of its usefulness. You must initialize the managed array with the appropriate size before calling the Marshal.Copy(IntPtr, IntPtr[], int, int) method.