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