CC++ 知识回顾内存分配的类别、堆和栈的区别

    xiaoxiao2021-03-25  80

    一:C++中的内存一般分为以下几类

    1.栈区:又编译器分配和释放,存放局部变量,函数参数等

    2.堆区:一般由程序员分配和释放,如果程序员不释放,程序结束时由系统回收。

    3.静态区(全局区):全局变量和静态变量放在一起,初始化的全局变量和静态变量放在一块区域,未初始化全局变量和静态变量放在相邻的另一块区域

    4.文字常量区:存放常量字符串

    5.程序代码区:存放二进制代码

    2:堆和栈的区别

    1.申请方式

    栈:由系统自动分配

    堆:由程序员分配

    2.申请的响应

    栈:如果栈空间足够,则分配,否则溢出。

    堆:系统查找空闲区域链表,找到合适的空闲块分配之

    3.申请大小的限制

    栈:栈的地址空间是向下生长的,一般固定。

    堆:堆的地址空间向上增长,比较大

    4.效率

    栈:比较快,但程序员无法控制

    堆:比较慢

    转载请注明原文地址: https://ju.6miu.com/read-15993.html

    最新回复(0)