c++内存堆栈分布说明-创新互联

栈: 存放函数的局部变量、函数参数、返回地址等,由编译器自动分配和释放。

创新互联专注于企业营销型网站建设、网站重做改版、颍泉网站定制设计、自适应品牌网站建设、成都h5网站建设商城网站开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为颍泉等各大城市提供网站开发制作服务。

堆: 用户动态申请的局部内存空间,一般由用户释放,(目前,进程退出OS也自动回收的)。

全局区/静态存储区(.bss 段和 .data 段): 存放全局变量和静态变量,OS自动释放,(C++ 中不再区分未初始化的 .bss 段,和初始化的.data 段)。

常量存储区(.data 段): 存放的是常量,进程退出自动释放。

代码区(.text 段): 存放代码,可执行。二进制文件

内核   (高地址段, 0xFFFF FFFF)
栈      (向下生长)
堆        (向上生长)
数据段(含全局的,静态的,常理的)
代码段  (低地址段)

栈是系统提供的数据结构,

计算机会在底层对栈提供支持:分配专门的寄存器存放栈的地址,压栈出栈都有专门的指令执行,这就决定了栈的效率比较高。

堆则是C/C++函数库提供的,它的机制是很复杂的,在堆内存中搜索可用的足够大小的空间,如果没有足够大小的空间,系统就重新管理内存空间,保证分足够大小的内存。

堆内存的首地址记录分配的大小,方便delete,回收

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享名称:c++内存堆栈分布说明-创新互联
文章链接:http://hbruida.cn/article/docpod.html