一架梯子,一头程序猿,仰望星空!
Golang初级特性面试题 > 内容正文

Golang 不分配内存的指针类型能用吗?


问题简答

不能,因为没有为指针变量分配内存空间,数据没地方存储。

问题详解:

Go语言中每个指针类型变量,必须要先分配内存空间,否则使用未分配内存的指针类型变量会报错。

错误例子:

package main

import (
 "fmt"
)

func main() {
   var num *int
   *num=200
   fmt.Println(*i)
}

返回错误信息:
panic: runtime error: invalid memory address or nil pointer dereference

正确代码:

var num *int
// 先分配内容
num = new(int)
*num=200