What Is uintptr in Go and When to Use It

uintptr is an integer type holding a pointer's bit pattern, used for C interop but not for direct memory access.

uintptr is an integer type large enough to hold the bit pattern of any pointer, used primarily for passing pointer addresses to C functions via cgo. It is not a pointer itself and cannot be dereferenced; it is an integer representation of a memory address.

import "unsafe"

var p *int
addr := uintptr(unsafe.Pointer(p))