经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C++ » 查看文章
C++内存管理机制
来源:cnblogs  作者:张杨  时间:2021/6/15 9:19:44  对本文有异议

C++中的内存管理

 

1. Linux中程序的内存地址分配

 

 

 

其中上面的地址为高位地址,下面的地址为低位地址。下面分别介绍各个内存区域的作用:

l 代码段:存放函数体的二进制代码;

l Bss段:存放未初始化的全局或静态数据;

l Data段:存放已初始化的全局或静态变量;

堆区:存放动态申请的内存,一般由new和malloc分配;

l 栈区:存放函数运行时的局部变量,函数参数,返回数据,返回地址等。

 

2. 堆和栈

l 栈:在函数调用时,第一个入栈的为该函数执行完毕后的下一条指令的地址,然后是参数,按从右至左入栈,最后是局部变量,这里静态变量不如栈;函数执行完毕后,局部变量先出栈,再是参数,最后是该函数执行完毕后的下一条指令地址。

堆:操作系统中存在一个记录堆中空闲内存的链表,每次动态申请内存时,都会去访问该链表,选择相匹配的内存,同时将多余的内存还回链表,可以知道这样必然会产生碎片,调用delete时,会去访问动态申请的这块内存首地址记录的本次动态分配的内存大小,从而正确的释放当前分配的内存空间。

原文链接:http://www.cnblogs.com/JsonZhangAA/p/14864615.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号