GoGuide icon indicating copy to clipboard operation
GoGuide copied to clipboard

疑问-【不能将函数内的指向局部变量的指针作为返回值, 函数结束指向空间会被释放】

Open newhoo opened this issue 3 years ago • 0 comments

关于这点【不能将函数内的指向局部变量的指针作为返回值, 函数结束指向空间会被释放】有疑问,示例如下:

package main

import (
	"fmt"
)

func f() *int {
	n := 100
	fmt.Println("1:", &n, n)
	return &n
}

func main() {
	n := f()
	fmt.Println("2:", n, *n)
	(*n) = 99
	fmt.Println("3:", n, *n)
}

输出:

1: 0x140000aa008 100
2: 0x140000aa008 100
3: 0x140000aa008 99

newhoo avatar May 27 '22 02:05 newhoo