堆内存申请与释放的标准流程

来源:互联网 发布:华清飞扬 知乎 编辑:程序博客网 时间:2024/06/02 22:47

一个动态内存申请与释放的例子,这个例子包含了堆申请的必须的步骤,在申请堆内存的时候应改按照该步骤,否则会出现难以预测的后果。

#include "iostream.h"

void main()

{

       int size;

       cin>>size;

       int *array=new int[size]; //申请动态内存

       if(array!=NULL) //一定要判断是否申请成功,否则可能会出现不良后果

       {

              for(int i=0;i<size;i++)

              {

                     *array=i;

                     array++; //利用地址来访问数组

              }

      

 

       array=array-size; //地址回退到首地址

       for(int j=0;j<size;j++)

       {

             

              cout<<*array<<endl; //输出数组中的内容

              array++;

        //也可以如下:cout<<array[j]<<endl;如果为这样,那么下面array=array-size就不用了

       }

       array=array-size;//释放内存的时候一定要指回初始位置

       delete[] array;//申请内存后一定要释放内存,否则会内存泄露。

    array=NULL;//使指针指向空,否则会出现野指针

       }

       else

       {

              cout<<"not succeed!";

        exit(1);

       }

}

原创粉丝点击