github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/gnovm/tests/backup/unsafe4.gno (about) 1 package main 2 3 import ( 4 "fmt" 5 "unsafe" 6 ) 7 8 const SSize = 24 9 10 type S struct { 11 X int 12 Y int 13 Z int 14 } 15 16 func main() { 17 arr := []S{ 18 {X: 1}, 19 {X: 2}, 20 {X: 3}, 21 } 22 addr := unsafe.Pointer(&arr[0]) 23 s := *(*S)(unsafe.Pointer(uintptr(addr) + SSize*2)) 24 25 fmt.Println(s.X) 26 } 27 28 // Output: 29 // 3