关于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分配内存后再赋值即可解决。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理