C/C++程序的内存布局

2023年6月29日08:09:33

C/C++中程序内存区域划分:

  1. 内核空间:用户无法对这块空间进行读写,该空间是专门用来跑操作系统的。

  2. 栈区:在调用函数时,函数调用空间、函数内局部变量、函数参数的存储单元都是在栈区上创建的,函数调用结束时这些存储单元自动被释放。

  3. 堆区:一般由程序员自主的动态内存开辟和释放,若程序员不释放,程序结束时可能由OS回收。动态分配方式类似于链表。

  4. 数据段:就是之前所说的静态区,主要用于存放全局数据静态数据

  5. 代码段:用于存放代码经过编译链接后的二进制可执行程序只读常量

C/C++程序的内存布局

  实际上普通的的局部变量是由放栈区分配的空间,而栈区的特点是在上面创建的变量出了作用域就自动销毁。而对于用static修饰的变量存放到了数据段静态区),数据段的特点是在上面创建的变量,直到程序结束才会销毁,故生命周期长。而在堆区上开辟的空间特点是能够自主的调整其大小。


  • 作者:圣喵
  • 原文链接:https://blog.csdn.net/m0_66769266/article/details/127351615
    更新时间:2023年6月29日08:09:33 ,共 387 字。