【厚积薄发】编程技术总结1—内存布局详解

来源:互联网 发布:vpn代理软件哪个好 编辑:程序博客网 时间:2024/06/05 16:45

栈区:由系统自动分配和释放,效率高,但是空间比较小,在Windows系统下默认是1M(在vs系统编译器中可以通过项目设置来重新设置栈区打下)。如:函数参数,由于栈区空间小,所以写程序的时候要尽量避免太深的递归调用,递归太深时函数参数过多会导致栈区内存不够从而导致崩溃(后续会出关于篇递归的优缺点以及开发中怎样避免递归调用)、局部变量

堆区:程序手动申请和释放的动态内存(new、malloc申请 free、delete释放),如果不手动释放进程结束时由操作系统来释放,所以说服务器类程序内存泄漏很致命,因为服务器程序经常是一直运行着的,如果内存不断泄漏会最后导致内存空间不够后程序崩溃。(后续会出篇关于内存泄漏相关的专项文章)

全局数据区:全局变量和静态变量(全局静态和局部静态),程序结束后由操作系统释放。

常量区:所有常量都存放在常量区,程序结束后由操作系统释放。

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

0 0
原创粉丝点击