C++内存存储区域简介

原创 2007年09月25日 20:37:00

---------------------------

在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。
全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。
常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改。

---------------------------

在网上查找到的资料,特摘抄留于学习

iOS 的内存与存储区域

栈区(stack)概述:栈是向低地址扩展的数据结构,是一块连续的内存区域。由栈顶的地址和栈的最大容量是系统预先规定好的。栈的空间很小,大概1-2M。超出overflow。使用:栈区,就是函数(方法)运...
  • hyc_springBrother
  • hyc_springBrother
  • 2017年06月13日 16:18
  • 274

C++中,内存5个区

C++中,内存分为5个区:堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈:是由编译器在需要时自动分配,不需要时自动清除的变量存储区。通常存放局部变量、函数参数等。 堆:是由new分...
  • mengdg
  • mengdg
  • 2016年03月07日 14:07
  • 1009

C++ 五大内存分区

原文摘自http://blog.csdn.net/paopao200327/article/details/7842328 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存...
  • jj2060
  • jj2060
  • 2015年03月07日 16:14
  • 1421

iOS中block块的存储位置&内存管理

从block存储位置说明为什么要这样修饰block,从而为何会有循环引用问题,以及如何解决它...
  • Cloudox_
  • Cloudox_
  • 2017年04月13日 14:24
  • 1604

对象在内存中是如何存储的(内存五大区域和类加载)

/* 先了解下内存五大区域和类加载  1.内存中的五大区域  栈---局部变量  堆---程序猿手动申请的字节空间,Malloc calloc readlloc  BBS段----未被初始化...
  • qq_36747738
  • qq_36747738
  • 2017年04月28日 14:48
  • 834

C++类的存储及类对象内存结构(整理)

本文分两部分,前半部分讲类的存储后半部分讲类的内存结构。 C++类的存储 c++中最重要的就是类,那么一个类的对象,它在内存中如何存储的?它占 内存中多少个字节? 首先确定类的构成: 1,数...
  • fenxinzi557
  • fenxinzi557
  • 2016年07月22日 16:06
  • 4020

C++成员函数在内存中的存储方式

用类去定义对象时,系统会为每一个对象分配存储空间。如果一个类包括了数据和函数,要分别为数据和函数的代码分配存储空间。按理说,如果用同一个类定义了10个对象,那么就需要分别为10个对象的数据和函数代码分...
  • fuzhongmin05
  • fuzhongmin05
  • 2017年03月01日 17:12
  • 3594

C语言变量存储区域 进程内存布局

C程序中,内存通常分为几个大区:共享存储区、栈区、堆区、全局静态区、文字常量区,此外还有程序代码区,其中,全局静态区又可以分为全局非初始化区和全局初始化区,从具体程序中来看,初始化和非初始化的全局OR...
  • hustsselbj
  • hustsselbj
  • 2015年08月28日 15:54
  • 861

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

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

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

C++内存存储区域划分 面试笔试常考    内存中对数据的存储不是杂乱无章的,而是有相应的划分,根据数据类型分门别类安放到相应的位置。    存储的区域由最高存储地址到最低存储地址依次为: ...
  • happywq2009
  • happywq2009
  • 2015年04月08日 21:23
  • 288
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++内存存储区域简介
举报原因:
原因补充:

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