栈和堆
Posted jiaqiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈和堆相关的知识,希望对你有一定的参考价值。
栈是用来存储函数内部临时使用的变量(局部变量),以及函数调用时所使用的参数的内存区域;
堆是用来存储程序运行时的任意数据和对象的内存领域。- 栈和堆的相似之处在于,它们的内存空间都是在程序运行时得到申请分配的。不过,在内存的使用方法上,二者存在些许不同。栈中对数据进行存储和舍弃(清理处理)的代码,是由编译器自动生成的,因此不需要程序员的参与。使用栈的数据的内存空间,每当函数被调用时都会得到申请分配,并在函数处理完毕后自动释放。与此相对,堆的内存空间,则要根据程序员编写的程序,来明确进行申请分配或释放。
如果没有在程序中明确释放堆的内存空间,那么即使在处理完毕后,该内存空间仍会一直残留.这个现象称为内存泄露。
以上是关于栈和堆的主要内容,如果未能解决你的问题,请参考以下文章