C++程序员必须知道的5大内存区域

原创 2015年11月21日 20:11:28
  • 1.全局名称空间
放置:全局变量。
特点:全局变量在函数返回时,不会消失,整个程序都能访问它,这导致代码容易出BUG,更难以理解和维护。所以尽量放堆中能够解决该问题。

  • 2.堆(自由存储区)
放置:除了其他区域的剩余区域。
特点:
1.可将堆视为大内存块,您必须保留这些内存块的地址,将其存储在指针钟,不再使用时丢掉。
2.只有有权访问指针的函数才能访问它指向的数据,这提供了控制严密的数据接口,消除了函数意外修改数据的问题。
3.使用后的堆没有释放,会造成Memory Leak内存泄露,这个问题是C++程序员必须重视的。(许多程序在运行过程中内存占用原来越大,直至内存耗尽,就是这样造成的。)
  • 3.寄存器
放置:用于内部管理,如跟踪栈顶和指令指针等。
  • 4.代码空间
代码
  • 5.栈
放置:局部变量,函数参数。
特点:不会持久化,函数返回时,局部变量丢失。

相关文章推荐

C/C++中内存区域划分大总结

【转自】http://www.osit.cn/html/develop/net/vcpp/2010/1122/807.html 一、 在c中分为这几个存储区   1.栈 - 由...
  • pkxpp
  • pkxpp
  • 2011年09月02日 15:40
  • 377

c/c++中内存区域划分大总结

转自:http://c.chinaitlab.com/cc/basic/200906/787241.html一、 在c中分为这几个存储区    1.栈 - 由编译器自动分配释放    2.堆 - 一般...

C和C++内存区域的划分

C内存中的存储区:

也谈C++内存区域

众所周知,C++内存区域被分为5大类:栈、堆、自由存储区、全局/静态存储区、常量存储区。     栈由编译器控制,栈空间的申请、使用和释放全权由编译器处理。这里的“全权处理”意思是责任归属,并不是说...

C++中的内存区域及其性能特征

C++中的内存区域及其性能特征

C/C++程序编译时和运行时内存区域分配

c程序内存分配区域问题。记得以前学《Unix高级环境编程》时书中有提到c程序内存分配问题。然后有次面试时,问到这个问题我根据书上的内容来回答的,面试官却说回答的对了一半,当时很纳闷怎么会对了一半呢。下...

c/c++中内存区域划分总结

C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。一. 在c中分...

JVM规范中的五大java内存区域

JVM在执行java程序时会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间。有的数据区域随着JVM的进程而启动,有的数据区域则依赖于用户线程的启动和结束而创建...
  • canot
  • canot
  • 2016年03月31日 16:07
  • 3413
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++程序员必须知道的5大内存区域
举报原因:
原因补充:

(最多只允许输入30个字)