加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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()
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读