栈上的内存,函数结束的时候这个函数用的内存自动释放;堆上的内存,你必须自己释放,否则就会一直存在,但程序退出时,操作系统会清理进程使用的所有资源,这是就会释放掉堆,堆都没了,内存自然也没了

问题在于,很多时候进程并不会马上退出,比如服务器程序一跑就是几个月,如果分配的那块代码只跑一次那还好,但通常会反复执行,那么分配出去的内存就会越来越多,而又没有机会释放,最终的结果是堆内存耗尽,再次分配失败,程序被迫退出或者耗尽系统资源被操作系统强制杀死。

相关文章:

  • 2021-11-20
  • 2021-07-19
  • 2021-06-10
  • 2021-11-20
  • 2021-12-06
  • 2021-11-20
  • 2021-11-19
  • 2021-12-07
猜你喜欢
  • 2022-12-23
  • 2021-12-02
  • 2022-01-29
  • 2022-03-06
  • 2021-06-11
  • 2022-02-07
相关资源
相似解决方案