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

我有以下代码:


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()


潇潇雨雨
浏览 93回答 1
1回答

隔江千里

要修复,您需要:s := make([]*SDL.Animable, 0, 100) ANIMATIONS = &s您的代码出现恐慌的原因基本上是您取消引用了一个 nil 指针(*ANIMATIONS)。您需要获取一个引用变量来存储新切片,然后您可以获得它的地址 ( &s) 并将其存储在指针中。注意:以下内容不起作用- 因为您无法&make([]*SDL.Animable, 0, 100)获取返回结果的地址 - 因此需要存储结果并获取其地址。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go