c/c++的内存分配,详细说一下栈、堆和静态存储区

栈区(Stack):由编译器自动分配和回收,栈中存放函数调用的相关信息,栈帧(记录函数的栈帧开始的位置),参数,局部变量,返回地址。其操作方法类似于数据结构中的栈。

堆区(Heap):由程序员自己分配和释放堆中的内存空间,如果程序员没有释放则由操作系统来收回。堆区这个堆和数据结构中的堆不太一样,分配方式类似链表。

静态存储区:静态存储区又叫做数据段,初始化的全局变量和初始化的静态变量都存放在静态存储区,如果没有初始化的话,就会放在另一块地方,叫做BBS段(Block By Symbol 符号开始的块)。

文字常量区:存放字符串常量存放在这里,程序结束后由系统释放。如"Hello world"这样的就是字符串常量。

程序代码区:存放函数体的二进制代码。

相关推荐

  1. C++中内存定义以及区别

    2024-03-14 16:32:03       5 阅读
  2. 内存内存

    2024-03-14 16:32:03       18 阅读
  3. 区别

    2024-03-14 16:32:03       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 16:32:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 16:32:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 16:32:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 16:32:03       18 阅读

热门阅读

  1. C 练习实例75-输入一个整数,并将其反转后输出

    2024-03-14 16:32:03       18 阅读
  2. Clickhouse数据库应用

    2024-03-14 16:32:03       18 阅读
  3. 环境安装篇 之 golang环境安装

    2024-03-14 16:32:03       20 阅读
  4. js代码新开一个浏览器窗口

    2024-03-14 16:32:03       20 阅读
  5. 【前端框架的发展史】讲解

    2024-03-14 16:32:03       19 阅读
  6. Python中的*args和**kwargs是什么,它们如何工作?

    2024-03-14 16:32:03       20 阅读
  7. CSS中display、float、position的关系

    2024-03-14 16:32:03       19 阅读
  8. scss 使用变量名注意事项

    2024-03-14 16:32:03       19 阅读
  9. uni-app网络请求封装及发送

    2024-03-14 16:32:03       22 阅读
  10. HTML本地离线缓存?

    2024-03-14 16:32:03       19 阅读