首先先看一下简单的案例
代码如下
#include<iostream>
using namespace std;
int main()
{
//整数1
int *x = new int;
if(NULL==x)
{
return 0;
}
*x=22;
cout<<*x<<endl;
delete x;
x=NULL;
//整数2
int *p = new int(20);//申请内存块时同时赋值
if(NULL==p)
{
return 0;
}
cout<<*p<<endl;
delete p;
p=NULL;
//数组
int *q = new int [1000];//申请块内存
if(NULL==q)//判断申请是否成功
{
return 0;
}
q[0]=6;
q[1]=66;
cout<<q[0]<<","<<q[1]<<endl;
delete []q;//释放内存
q=NULL;//使p为空
return 0;
}
运行结果如下:
在堆中申请100个char类型的内存,拷贝Hello world字符串到分配的堆中的内存中,打印字符串,最后释放内存。
代码如下:
#include <string.h>
#include <iostream>
using namespace std;
int main(void)
{
//在堆中申请100个char类型的内存
char *str = new char[100];
//拷贝Hello C++字符串到分配的堆中的内存中
strcpy(str, "Hello world");
//打印字符串
cout<<str<<endl;
//释放内存
delete []str;
str=NULL;
return 0;
}
运行结果如下: