当前位置:编程学习 > 网站相关 >>

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

废话不说了,直接上代码
[plain] 
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()  
}  
 
补充:综合编程 , 其他综合 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,