#include <iostream>
using namespace std;
/**
* 假设我们要为一个字符数组(一个有 20 个字符的字符串)分配内存,
* 我们可以使用上面实例中的语法来为数组动态地分配内存,如下所示:
* char* pvalue = NULL; // 初始化为 null 的指针
* pvalue = new char[20]; // 为变量请求内存
* 要删除我们刚才创建的数组,语句如下:
* delete [] pvalue; // 删除 pvalue 所指向的数组
* 下面是 new 操作符的通用语法,可以为多维数组分配内存,如下所示:
*
*
*/
class Box
{
public:
Box(){
cout<<"调用构造函数!"<<endl;
}
~Box(){
cout<<"调用析构函数!"<<endl;
}
};
int main(int argc, char const *argv[])
{
/* code */
int* pValue = NULL;
pValue = new int[5];
int i;
for(i=0;i<5; i++){
*pValue = i;
cout<<*pValue<<endl;
pValue++;
}
//不能进行如下操作 因为移动了指针的位置
//delete [] pValue;
Box* boxArray = new Box[4];
delete [] boxArray; // 删除数组
return 0;
}
输出如下:
0
1
2
3
4
调用构造函数!
调用构造函数!
调用构造函数!
调用构造函数!
调用析构函数!
调用析构函数!
调用析构函数!
调用析构函数!