小编xia*_*wei的帖子

在 Go 中使用 unsafe.Pointer 的恐慌

代码是:

package main

import (
    "fmt"
    "unsafe"
)

type Point struct {
    x int 
    y int 
}

func main() {

    buf := make([]byte, 50) 
    fmt.Println(buf)
    t := (*Point)(unsafe.Pointer(&buf))
    t.x = 10
    t.y = 100 
    fmt.Println(buf)
}
Run Code Online (Sandbox Code Playgroud)

运行它时,会发生运行时恐慌:

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0xa pc=0x43dd4d]
Run Code Online (Sandbox Code Playgroud)

为什么?

pointers unsafe go slice

-1
推荐指数
1
解决办法
576
查看次数

标签 统计

go ×1

pointers ×1

slice ×1

unsafe ×1