C++的内存分区

本文探讨了C++中的内存四区:代码区(只读,存放机器指令)、全局区(包括data区、bss区和常量存储区)、栈区(存放函数参数、返回值和局部变量)和堆区(用于动态内存分配)。了解这些分区对于优化程序性能和避免内存泄漏至关重要。
摘要由CSDN通过智能技术生成

C++的内存分区管理机制初探究

常见的内存四区

一、代码区:
  • 是否可读可写:只读

    防止其他程序意外修改了它的指令

  • 作用

    存放CPU执行的机器指令。一般的来说代码区是可以跟其他程序共享的,并且还规划了局部变量的相关信息

二、全局区:
  • 别名

    全局区、静态区、数据区、全局静态区、静态全局区

  • 主要可以细分为三个区

    1、data区:存放已经初始化的全局变量、静态变量和常量

    2、bss区:存放未初始化的全局变量、静态变量

    3、常量存储区:全局区的一个小部分,主要存放const修饰的全局变量或者字符串常量

三、栈(stack)区:
  • 特点

    1、是一种先进后出的数据结构,存放函数的参数、返回值和局部变量

    2、程序运行的过程中实时加载和释放

四、堆(heap)区:
  • 特点

    1、容量远远大于栈,没有像栈一样的先进后出的规则

    2、主要用于动态内存的分配

    3、由程序员分配和释放,如果程序员不释放,只能在程序结束的时候由操作系统回收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值