静态存储娜区堆栈.docVIP

  • 1
  • 0
  • 约1.18万字
  • 约 12页
  • 2018-12-22 发布于福建
  • 举报
静态存储娜区堆栈

学习c++如果不了解内存分配是一件非常可悲的事情。而且,可以这样讲,一个C++程序员无法掌握内存、无法了解内存,是不能够成为一个合格的C++程序员的。   一、内存基本构成   可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。   静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。   栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。   堆区:亦称动态内存分配。程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存。动态内存的生存期可以由我们决定,如果我们不释放内存,程序将在最后才释放掉动态内存。但是,良好的编程习惯是:如果某动态内存不再使用,需要将其释放掉,否则,我们认为发生了内存泄漏现象。   二、三者之间的区别   我们通过代码段来看看对这样的三部分内存需要怎样的操作和不同,以及应该注意怎样的地方。   例一:静态存储区与栈区   char* p = “Hello World1”;   char a[] = “Hello World2”;   p[2] =‘A’;   a

文档评论(0)

1亿VIP精品文档

相关文档