UIntPtr (user32)
Last changed: -90.152.60.34

.

A platform-specific type for unsigned pointers, handles and integers.

Note
its "Ptr" postfix is misleading, UIntPtr can be used to represent any native unsigned integer including pointers.

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] + " ");
    }
}