c++中指针与动态内存的分配

来源:互联网 发布:js的insertbefore参数 编辑:程序博客网 时间:2024/05/20 12:50

             所有的代码都是通过dev c++ 4.9.9.2来编写的              

            

           c++程序中内存的分为五个区,分别为栈,堆,自由存储区,全局/静态存储区和常量存储区,程序中各个数据存储在这些内存的区域中。

             栈区有编译器自动分配和释放,存放函数的参数以及局部变量。

             堆区中的内存分配和释放有开发者负责。一般使用运算符new分配内存,并用delete释放内存。

             自由存取区和堆相似,但是其内存管理一般是通过malloc和free等进行的。

              全局/静态存储区中存放的是全局变量和静态变量。

               常量存储区存储的是常量,通常不允许修改。


           上面的个分配通过下面代码来说明:

                 

#include <iostream>using namespace std;int a;         //全局变量,存储在全局/静态存储区中int main () {   int b;            //局部变量,存储在栈上   int *p = new int ();   //由运算符new分配,存储在堆上   static int d;             //静态变量,存储在全局/静态存储区中   const int e = 0;    //常量,存储在常量存储区中   delete p;             //释放堆中的内存    return 0;    system ("pause");     }