什么是C的内存管理实现机制
发布网友
发布时间:2022-05-05 10:38
我来回答
共2个回答
热心网友
时间:2022-06-27 09:30
分区管理
一个由C/C++编译的程序占用的内存分为以下几个部分:
(1) 栈区(stack) : 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈,地址由高向低延伸。
(2) 堆区(heap): 一般由程序员分配释放,由程序执行过程中动态申请分配的内存,地址由低向高延伸,与栈区正好相反。若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式类似于链表。
(3) 全局区(静态区static) :全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后有系统释放。
(4) 文字常量区: 常量字符串就是放在这里的。程序结束后由系统释放。 (5) 程序代码区: 存放函数体得二进制代码。
热心网友
时间:2022-06-27 09:31
retain,release