C++内存管理机制

2021/6/9 7:21:20

本文主要是介绍C++内存管理机制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

C++中的内存管理

 

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

 

 

 

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

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

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

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

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

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

 

2. 堆和栈

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

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



这篇关于C++内存管理机制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程