一:C++中的内存一般分为以下几类
1.栈区:又编译器分配和释放,存放局部变量,函数参数等
2.堆区:一般由程序员分配和释放,如果程序员不释放,程序结束时由系统回收。
3.静态区(全局区):全局变量和静态变量放在一起,初始化的全局变量和静态变量放在一块区域,未初始化全局变量和静态变量放在相邻的另一块区域
4.文字常量区:存放常量字符串
5.程序代码区:存放二进制代码
2:堆和栈的区别
1.申请方式
栈:由系统自动分配
堆:由程序员分配
2.申请的响应
栈:如果栈空间足够,则分配,否则溢出。
堆:系统查找空闲区域链表,找到合适的空闲块分配之
3.申请大小的限制
栈:栈的地址空间是向下生长的,一般固定。
堆:堆的地址空间向上增长,比较大
4.效率
栈:比较快,但程序员无法控制
堆:比较慢
转载请注明原文地址: https://ju.6miu.com/read-15993.html