请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于内存分配的问题

老师,请问下在堆区的内存是一段一段分配的怎么来理解?
另外在栈区的变量的内存是随机分配的吧,只有在堆区的内存是一段段分配的吗?(就是有连续性的分配)

正在回答

1回答

堆的内存分配可以由程序员自己掌控,所以很多分配内存的优化方案会在分配空间时将一段连续区域一次性分配出来,然后通过一系列方案去管理这段内存,这是一种内存池的方案,所以尽量少在工程中需要时就临时去分配一段空间,这样会产生内存碎片;栈就没办法了,系统控制,程序员管不了。

1 回复 有任何疑惑可以回复我~
  • 提问者 dark铭 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-02-29 22:10:23
  • 提问者 dark铭 #2
    但是栈区分配的内存也是连续分配的是吧?虽然是由系统控制的
    堆的内存分配可以由程序员自己掌控的意思是可以在特定的时刻运行然后在特定的时候释放吗?
    回复 有任何疑惑可以回复我~ 2020-03-01 13:32:42
  • quickzhao 回复 提问者 dark铭 #3
    栈分配的方式不一定像你想的那么连续,编译器会做很多处理,包括安全性和代码优化的问题,等我们讲函数栈时你可以仔细观察。堆是由程序员可以掌控分配和释放空间时机,所以非常灵活,能否用好取决于程序员素质。
    回复 有任何疑惑可以回复我~ 2020-03-01 14:50:10
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信