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

程序内存模型

内存的分区模型

C++程序在执行时,将内存大方向划分为4个区域
代码区:存放函数体的二进制代码,由操作系统进行管理的
全局区:存放全局变量和静态变量以及常量
栈区:由编译器自动分配释放,存放函数的参数值,局部变量等
堆区:由程序员分配和释放,诺程序员不释放,程序结束时由操作系统回收
内存四区意义
不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程

程序运行前

在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域
代码区:
存放CPU执行的机器指令
代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可
代码区是只读的,使其只读的原因是防止程序意外地修改了他的指令
全局区:
全局变量和静态变量(static int a = 10 就是普通变量前面加static 属于静态变量)存放在此
全局区还包含了常量区,字符串常量和其他常量(const修饰的全局常量和字符串常量)也存放在此
注意:局部常量不算
该区域的数据在程序结束后由操作系统释放

程序运行后

栈区(Project3 filename)
由编译器自动分配释放,存放函数的参数值 局部变量等
注意事项:不要返回局部变量的地址 栈区开辟的数据由编译器自动释放
int* func() {
int a = 10;
return &a;
}
int main() {
//接受func函数的返回值
int* p = func();
cout << *p << endl;
cout << *p << endl;
system("pause");
return 0;
}
堆区:(project 3 filename1)
由程序员分配释放,诺程序员不释放,程序结束时由操作系统回收
在C++中主要利用new在堆区开辟内存

new运算符

语法:new 数据类型
利用new创建的数据,会返回该数据对应的类型和指针
intfunc(){
int
p=new arr(10);
return a;
}
int p=func();
cout<<
p<<endl;
delete p;//利用delete释放堆区数据
开辟数组
int*arr = new int[10];

http://www.gsyq.cn/news/26352.html

相关文章:

  • 如何从0到1制作一个免费的二维可视化项大屏
  • 2025 年集成电路封装厂家最新推荐榜:甄选技术领先实力厂家,涵盖制造检测测试领域权威名录
  • 实用指南:logbuffer 概念及题目
  • WPF使用MediaCapture开发相机应用(三、相机拍照)
  • 2025年磨粉机厂家权威推荐榜:雷蒙磨粉机/环辊磨粉机/摆式磨粉机/矿石磨粉机/超细磨粉机/高压磨粉机,专业实力与高效生产之选
  • 2025陶瓷过滤机实力厂家推荐,铜陵杰达机械专注固液分离设备制造
  • Vue技术之Vxe-Table的虚拟滚动
  • 详细介绍:大模型落地的四大核心引擎:从技术突破到产业重构
  • EasyCVR视频汇聚平台GB28181级联异常排查:上级订阅信息无响应的根源解析
  • 2025 年最新烘干机生产厂家推荐榜单:覆盖多品类需求,聚焦高效节能与品质保障食品/蔬菜/滚筒/木材/药材/大型烘干机厂家推荐
  • 完整教程:这个叫DOCX-MCP的开源项目,解决了AI操作Word的一个大麻烦
  • XMLType 测试记录
  • 开源能源管理系统 MyEMS:赋能企业降本增效,加速能源数字化转型
  • 深入解析:LabVIEW超声换能器成像
  • 2025南京鑫铭机械厂家推荐:精密钣金加工与天文台圆顶定制专家
  • 2025工业臭氧检测仪实力厂家推荐,逸云天电子专业提供多场景精准监测方案
  • 2025潮流服饰实力厂家推荐,COVERNAT乐酷天打造品质穿搭新选择
  • 详解ROMA中复杂图表的渲染实现
  • 生成式AI购物助手Rufus的技术架构解析
  • 2025数控滚齿机实力厂家推荐,无锡吉莱特智能装备高精度定制!
  • KDE connection to the service lost
  • hash判断两个集合是否完全相同
  • 2025微弧氧化加工厂家推荐:常州华源专业表面处理技术供应商
  • 2025防腐工程厂家推荐:无锡华金喷涂技术领先,定制防腐解决方案
  • 2025年10月全屋智能家居品牌推荐:盈趣领衔对比评测榜
  • Java 多线程编程详解
  • [LangChian] 05.结构化提示词
  • git提PR时很多别人的commit,清理多余的commit
  • Visual Studio 使用小知识记录
  • DeepSeek-OCR:让 AI “一眼看懂” 的黑科技