我想了解堆栈变量是如何被释放的。它是作为位于堆上的变量进行垃圾收集,还是像 C 语言一样在离开变量范围后将在内部释放?
1 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
一旦分配该变量的函数返回,分配在堆栈上的变量将被删除,因为堆栈指针将恢复到函数调用之前的状态。那里没有 GC 参与。
在 Go 中,如果堆栈变量是指向堆上对象的指针,那么一旦函数返回,指针将被移除,然后 GC 可以移除它指向的对象,前提是不存在其他引用。
- 1 回答
- 0 关注
- 167 浏览
添加回答
举报
0/150
提交
取消
