问答 / 0 / 2 / 创建于 6年前
panic: runtime error: invalid memory address or nil pointer dereference
尽信书,不如无书
type myStruct struct { i int } // v 是结构体类型变量 var v myStruct // p 是指向一个结构体类型变量的指针 var p *myStruct // 初始化指针的时候会为指针 p 的值赋为 nil fmt.Println(v) // {0} fmt.Println(p) // <nil> // v.i = 1 // p.i = 1 // 在这里进行赋值,go会报错 invalid memory address or nil pointer dereference // 因为p代表的是 *p 的地址 // nil 的话系统还并没有给 *p 分配地址, 给p 赋值肯定会出错 // [解决办法]: 指针赋值前可以先创建一块内存分配给赋值对象 p = new(myStruct) v.i = 1 p.i = 2 // 这样就不会报错了 fmt.Println(v) // {1} fmt.Println(p) // &{2} fmt.Println(&p) // p的地址 0xc000006030
我要举报该,理由是:
尽信书,不如无书