package main
import (
"fmt"
"strconv"
"unsafe"
)
type User struct {
Id int64
Age int32
Name int64
}
func main() {
u := &User{Id: 123, Age: 456, Name: 789}
p := (uintptr)(unsafe.Pointer(u))
idp := (*int64)(unsafe.Pointer(p))
fmt.Println("id:" + strconv.FormatInt(*idp, 10))
agep := (*int32)(unsafe.Pointer(p + 8))
fmt.Println("age:" + strconv.Itoa(int(*agep)))
namep := (*int64)(unsafe.Pointer(p + 16))
fmt.Println("name:" + strconv.FormatInt(*namep, 10))
}
输出
id:123
age:456
name:789