一个动态内存申请与释放的例子,这个例子包含了堆申请的必须的步骤,在申请堆内存的时候应改按照该步骤,否则会出现难以预测的后果。
#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);
}
}