程序在分配内存时,分为:栈区、堆区、全局区、文字常量区、程序代码块区。
栈区:由编译器自动分配释放,存放函数的参数值,局部变量,如地址(指针)、普通变量(int)等。内存的分配是连续的。
堆区:一般由程序员分配和释放,若程序员不释放,可能会引起内存泄漏。堆区中存放的是对象。在内存中的分布是不连续的,是由不同区域的内存块通过指针链接起来,类似于链表。
全局区(静态区 static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
文字常量区:存放常量字符串,程序结束后由系统释放。
程序代码区:存放函数体的二进制代码。
栈区与堆区的内存分配与管理
最新推荐文章于 2024-03-26 22:54:32 发布