乐趣区

关于go:signal-SIGSEGV-segmentation-violation

出错的用法

package main

import "fmt"

var a *string

func main() {fmt.Println(*a)
}

正确的用法

package main

import "fmt"

var a = new(string)

func main() {fmt.Println(*a)
}

起因

var a *string只是 申明 了变量 a,并没有 初始化 (分配内存),没有分配内存,* 天然是取不到地址的。

所以在申明的同时应用内建函数 new 分配内存后再赋值即可解决。

退出移动版