7.4.3 用new分配内存单元
有时定义指针不是为了指向已经定义好的其他变量,而是为了开辟新的存储单元,这时就需要动态申请内存单元。C++(www.cppentry.com)采用new运算符来申请新的存储单元,格式如下。
- p=new type;
- 或
- p=new type[<n>];
其中,p表示指针,new是关键字,type是类型名,[<n>]表示需要n个type类型长度的存储单元。new返回新分配的内存单元的地址。第一种格式表示申请一个type类型长度的内存单元,第二种格式表示申请n个type类型长度的内存单元。
当申请的内存单元不再使用时,必须予以收回,这要用到与new配对的delete运算符。其格式如下所示。
- delete p;
- 或
- delete []p;
其中,delete是关键字,p是指针,[]表示要删除new分配的多个type类型的存储单元。两种格式分别与new的两种格式相对应。需要注意的是delete并没有破坏指针p的内容,它只是告诉系统收回这片内存单元,可以重新利用。所以delete后,最好将p显示置为空指针。
【示例7-10】 演示new/delete的使用方法。
- char *p;
- p=new char;
- *p='a';
- delete p;
【责任编辑:
云霞 TEL:(010)68476606】