博客 / 詳情

返回

[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分配內存後再賦值即可解決。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.