您的位置:首页 > 编程语言 > Go语言

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

2013-03-12 11:18 204 查看
废话不说了,直接上代码

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()
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐