``` go
var g *int
go func() {
var f int
f=10
g=&f
}()
time.Sleep(100*time.Millisecond)
fmt.Println(g)
fmt.Println(*g)
```
<br/>
按理来说,这个goroutine运行完之后,f 这个变量会被销毁,那么 g 指向的内存所存储的数据将会变成未知数据,因为这块内存已经被OS回收,说不定已被分配给其它变量。<br/>
但是现在并没有出现这个问题,难道说不能用c++的思想去思考这个问题,难道是go的GC帮我保留了这块内存?因为它知道我还要使用它?
有疑问加站长微信联系(非本文作者)