一个内存地址的问题

查看 16|回复 0
作者:jiang1234321   
package main
import (
"fmt"
)
func test() *int {
a := int(1)
return &a
}
func main() {
b := test()
fmt.Printf("%d\n", *b)
}
如上代码,
这里按理 test 内的变量都是栈空间,函数跑完就释放了。但是这个代码还能正常编译运行。
这是为啥?
是不是编译器做了栈逃逸,实际分配还是在堆空间?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部