当前位置: 首页 > news >正文

C语言的内存模型 (堆区,栈区,静态区,常量区,代码区 )概念讲解

C语言的内存模型分为5个区: 堆区,栈区,静态区,常量区,代码区  。

1、栈区

存放函数的参数值,局部变量等。 由编译器自动分配和释放。通常在函数执行完了就释放了。其操作方式类似于数据结构中的栈。栈内存分配运算内置于cpu 的指令集,效率高,但是内存量有限。  

(栈是先进后出, 队列先进先出)

2、堆区

就是通过new、 malloc 、  relloc  分配的内存块,编译器不会负责它们的释放工作,需要用程序去释放。分配方式 类似数据结构中的链表。“内存泄漏”通常说的就是堆区。

3、静态区

全局变量 和静态变量在一块区域,未初始化的全局变量和静态变量在相邻的另一块区域,程序结束后,由系统释放。

4、常量区

常量存储在这里不允许修改。

5、代码区

顾名思义,存放代码的。

 

相关文章:

  • 互感器制作流程
  • 什么是独立服务器?为什么选择它?
  • 数据分析中,文件解析库解析内容样式调整
  • 一个数组分为两个sum相等的数组
  • 正弦函数的连续傅里叶变换正弦序列的DTFT
  • FPGA助力智能机器人应用
  • 小样本学习(Few-Shot Learning)基本概念 VS 监督学习
  • docker-操作实战
  • 为什么递归用栈?动态分配用堆?
  • 网络编程的概念&作用
  • vscode ssh连接ubantu显示管道不存在,VMware Virtual Ethernet Adapter for VMnet8不存在
  • 6.3 模拟专题:LeetCode 6. Z 字形变换
  • Vue3 知识点总结
  • 在 PostgreSQL 中设置调试环境以更好地理解 OpenSSL API
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例1,TableView16_01.vue 基础行拖拽排序示例
  • cnn中的dropout技术
  • 如何在jupyter notebook中使用django框架
  • Linux 配置时间服务器
  • 企业级全栈开发终极指南:Spring Boot+Vue3+Kubernetes实战,从0到上线高并发系统
  • 禾赛盈利了,但激光雷达没有胜利
  • 云南app开发制作/郑州搜索引擎优化公司
  • 深圳自助网站建设费用/安仁网络推广
  • 济南网站建设公司电子商务网站/制作网页的流程
  • 科技创新网站建设策划书/搜索引擎关键词优化方案
  • 官方网站模版/交换链接网站
  • 亚当学院网站建设视频教程/网页制作成品模板网站