美文网首页
C++内存分布

C++内存分布

作者: 钟离惜 | 来源:发表于2020-09-22 22:33 被阅读0次

    下面这张图很详细的描述了C++中各种内存区域。

    内存分布

    一般分为以下几个区域:

    代码区

    存放CPU执行的机器指令,代码区是可共享,并且是只读的。

    数据区

    静态变量(全局和局部)、已初始化的全局变量、常量数据(比如常量字符)。

    BSS区

    未初始化的全局变量和静态变量(会执行默认初始化)。

    以上区域是代码未执行时就有的区域。
    下面是代码执行时才有的区域。

    栈区

    由编译器自动分配释放,存放函数的参数值、返回值和局部变量(临时变量),在程序运行过程中实时分配和释放,栈区由操作系统自动管理,无须程序员手动管理。

    堆区

    堆是由malloc\new分配,使用free\delete函数来释放的内存,堆的申请释放工作由程序员控制,容易产生内存泄漏。

    相关文章

      网友评论

          本文标题:C++内存分布

          本文链接:https://www.haomeiwen.com/subject/etmgyktx.html