我有以下代码:var ANIMATIONS *[]*SDL.Animable....func main() { *ANIMATIONS = make([]*SDL.Animable, 0, 100)但是跑步的时候就慌了。初始化这个的正确方法是什么?错误 :panic: runtime error: invalid memory address or nil pointer dereference[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x4afe3a]goroutine 1 [running, locked to thread]:main.main()
1 回答
隔江千里
TA贡献1906条经验 获得超10个赞
要修复,您需要:
s := make([]*SDL.Animable, 0, 100) ANIMATIONS = &s
您的代码出现恐慌的原因基本上是您取消引用了一个 nil 指针(*ANIMATIONS
)。您需要获取一个引用变量来存储新切片,然后您可以获得它的地址 ( &s
) 并将其存储在指针中。
注意:以下内容不起作用- 因为您无法&make([]*SDL.Animable, 0, 100)
获取返回结果的地址 - 因此需要存储结果并获取其地址。
- 1 回答
- 0 关注
- 92 浏览
添加回答
举报
0/150
提交
取消