【厚积薄发】编程技术总结1—内存布局详解
来源:互联网 发布:vpn代理软件哪个好 编辑:程序博客网 时间:2024/06/05 16:45
栈区:由系统自动分配和释放,效率高,但是空间比较小,在Windows系统下默认是1M(在vs系统编译器中可以通过项目设置来重新设置栈区打下)。如:函数参数,由于栈区空间小,所以写程序的时候要尽量避免太深的递归调用,递归太深时函数参数过多会导致栈区内存不够从而导致崩溃(后续会出关于篇递归的优缺点以及开发中怎样避免递归调用)、局部变量
堆区:程序手动申请和释放的动态内存(new、malloc申请 free、delete释放),如果不手动释放进程结束时由操作系统来释放,所以说服务器类程序内存泄漏很致命,因为服务器程序经常是一直运行着的,如果内存不断泄漏会最后导致内存空间不够后程序崩溃。(后续会出篇关于内存泄漏相关的专项文章)
全局数据区:全局变量和静态变量(全局静态和局部静态),程序结束后由操作系统释放。
常量区:所有常量都存放在常量区,程序结束后由操作系统释放。
代码区:存放程序的二进制代码。
0 0
- 【厚积薄发】编程技术总结1—内存布局详解
- 【厚积薄发】编程技术总结2—内存泄露详解
- 【厚积薄发】编程技术总结3—递归函数使用的优缺点详解
- 【厚积薄发】编程技术总结9—常见指针笔试面试题详解
- 【厚积薄发】编程技术总结4—new、delete、malloc、free简述
- 【厚积薄发】编程技术总结5—C/C++/JAVA区别简述
- 【厚积薄发】编程技术总结6—继承、实现、依赖、关联、聚合、组合简介
- 【厚积薄发】编程技术总结7—封装、继承、多态简介
- 【厚积薄发】编程技术总结8—常见笔试面试题小结
- 【厚积薄发】编程技术总结10—TCP/IP网络传输协议
- 【厚积薄发】编程技术总结11—项目经验总结之参数化建模数据基类的设计与演进
- 【厚积薄发】编程技术总结12—项目经验总结之Qt多线程实现汇总界面和底层计算分离
- C++技术问题总结-第1篇 内存布局
- 年度总结--厚积薄发
- xv6内存布局详解
- 内存布局详解
- CUDA编程经验技术总结 系列之《内存模块》
- 厚积薄发
- accpet 返回的描述符理解
- linux 根据内存使用量自动重启服务的脚本
- 使用Jersey来创建RESTful WebService
- PostMan
- 《FreeSWITCH: VoIP实战》: 运行 FreeSWITCH
- 【厚积薄发】编程技术总结1—内存布局详解
- 支持ie8的jquery
- stm8下载程序(使用ST-LINK下载器和STVP下载软件)
- 关于stop()方法的理解
- Elasticsearch5.0 beta版本安装错误
- C# 入门(10) 事件(event)
- 一些 for循环 电路的综合结果(systemVerilog)
- log4j打印调用工程的日志
- MySQL中order by语句对null字段的排序