A platform-specific type for unsigned pointers, handles and integers.
One usage of UIntPtr is to represent the platform-specific size_t type. e.g.
//#include <cstring>
//void *memcpy( void *to, const void *from, size_t count );
[DllImport("msvcrt.dll", EntryPoint = "memcpy", CallingConvention = CallingConvention.Cdecl, SetLastError = false)]
public static extern IntPtr MemCopy(byte[] dest, byte[] src, UIntPtr count);
//Console Prints: 0 0 1
public static void CopyPrint()
{
byte[] dest = new byte[] { 1, 1, 1 };
byte[] src = new byte[] { 0, 0, 0 };
UIntPtr count = new UIntPtr(2u);
MemCopy(dest, src, count);
for (int i = 0; i < dest.Length; i++)
{
Console.Write(dest[i] + " ");
}
}