golang里如何将一个struct指针转换成slice

来源:互联网 发布:淘宝直通车基础教程 编辑:程序博客网 时间:2024/06/04 00:30

废话不说了,直接上代码

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: uintptr(unsafe.Pointer(t)),len:  int(p),cap:  int(p),}b := *(*[]byte)(unsafe.Pointer(sl))println(len(b))fmt.Println(b)b[0] = 7b[4] = 5b[8] = 8fmt.Println(t)}func main() {abc()}


原创粉丝点击