Marshal::Copy Method (array<Byte>^, Int32, IntPtr, Int32)
Copies data from a one-dimensional, managed 8-bit unsigned integer array to an unmanaged memory pointer.
Assembly: mscorlib (in mscorlib.dll)
public: [SecurityCriticalAttribute] static void Copy( array<unsigned char>^ source, int startIndex, IntPtr destination, int length )
Parameters
- source
-
Type:
array<System::Byte>^
The one-dimensional array to copy from.
- startIndex
-
Type:
System::Int32
The zero-based index in the source array where copying should start.
- destination
-
Type:
System::IntPtr
The memory pointer to copy to.
- length
-
Type:
System::Int32
The number of array elements to copy.
| Exception | Condition |
|---|---|
| ArgumentOutOfRangeException | startIndex and length are not valid. |
| ArgumentNullException | source, startIndex, destination, or length is null. |
You can use this method to copy a subset of a one-dimensional managed array to an unmanaged C-style array.
The following example copies an array to unmanaged memory by using the Copy(array<Byte>^, Int32, IntPtr, Int32) overload, and then copies the unmanaged array back to managed memory by using the Copy(IntPtr, array<Byte>^, Int32, Int32)overload.
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1