为了账号安全,请及时绑定邮箱和手机立即绑定

制作时指针切片的指针发生恐慌

制作时指针切片的指针发生恐慌

Go
潇潇雨雨 2023-07-10 17:21:45
我有以下代码: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)获取返回结果的地址 - 因此需要存储结果并获取其地址。


查看完整回答
反对 回复 2023-07-10
  • 1 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信