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

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

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

[内存管理] 内存五大分区

IOS 开发中,不少人对内存分区不是很明白,为了搞明白具体分区,花了点时间总结了一下内存的5大分区...
  • Damonvv
  • Damonvv
  • 2015年07月30日 17:28
  • 2139

C语言中sizeof求结构体大小(让你真正了解结构体成员在内存中的分布情况)

今天我在写程序的时候我发现当一个结构体里面的成员变量相同的时候但是顺序不同的时候,所消耗的内存大小是不一样的, 因为我对内存的消耗很敏感,我想它具体是怎么用的 ,于是我具体看了下关于结构体成员在内存...
  • yyfwd
  • yyfwd
  • 2016年03月14日 15:50
  • 2426

每一个程序员需要了解的10个Linux命令

本文是码农网原创翻译,转载请看清文末的转载要求,谢谢合作! 作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息。本文将为各位开发者分享10...
  • alexdream
  • alexdream
  • 2015年01月26日 17:35
  • 1487

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

一、 在c中分为这几个存储区     1.栈 - 由编译器自动分配释放     2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收     3.全局区(静态区),全局变量...
  • caodesheng110
  • caodesheng110
  • 2011年08月23日 23:12
  • 543

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

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

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

转载自:http://developer.51cto.com/art/201106/270341_all.htm
  • tmy257
  • tmy257
  • 2014年04月17日 20:22
  • 423

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

一. 在c中分为这几个存储区 1.栈 - 由编译器自动分配释放 2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3.全局区(静态区),全局变量和静态变量的存储是放在一...
  • heary29
  • heary29
  • 2015年01月14日 11:53
  • 338

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

C/C++中内存区域划分大总结 2011-04-13 16:50 中国IT实验室   程序由代码和数据组成,其中代码存储在代码区中,数据根据类型的不同存储在不同的区域中。本文分别介绍了C和C...
  • chenjie863
  • chenjie863
  • 2013年10月23日 00:07
  • 581

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

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

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

程序由代码和数据组成,其中代码存储在代码区中,数据根据类型的不同存储在不同的区域中。本文分别介绍了C和C++中内存区域的划分。 C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程...
  • zhanghow
  • zhanghow
  • 2016年12月19日 11:40
  • 318
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++程序员必须知道的5大内存区域
举报原因:
原因补充:

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