golang里如何将一个struct指针转换成slice
发布时间:2020-12-16 19:01:47 所属栏目:大数据 来源:网络整理
导读:废话不说了,直接上代码 package mainimport "unsafe"import "fmt"func abc() {type T struct {a intb intc int}type SliceHeader struct {addr uintptrlen intcap int}t := T{a: 1,b: 2,c: 3}p := unsafe.Sizeof(*t)println(int(p))sl := SliceHeader{addr:
废话不说了,直接上代码 package main import "unsafe" import "fmt" func abc() { type T struct { a int b int c int } type SliceHeader struct { addr uintptr len int cap int } t := &T{a: 1,b: 2,c: 3} p := unsafe.Sizeof(*t) println(int(p)) sl := &SliceHeader{ addr: uintptr(unsafe.Pointer(t)),len: int(p),cap: int(p),} b := *(*[]byte)(unsafe.Pointer(sl)) println(len(b)) fmt.Println(b) b[0] = 7 b[4] = 5 b[8] = 8 fmt.Println(t) } func main() { abc() } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |