一、定义
首先先明确一点,new和delete是c++中用于申请和释放内存的,其次new和delete要成对使用
最后new和delete不能和malloc和free混用
二、使用
先搞清楚使用new时c++内部的机制
1、当初始化一个对象时
new--->operator new--->malloc--->构造函数
2、当初始化若干个对象时
new[]--->operator new[]--->operator new--->malloc--->构造函数
当delete对象时调用顺序为:
1、当delete单个对象时:
delete--->析构函数--->operator delete--->free
2、当delete多个对象时:
delete[]--->析构函数--->operator delete[]--->operator delete--->free
new使用的一般格式:
格式1:指针变量名 = new 类型标示符
格式2:指针变量名 = new 类型标示符(初始值)
格式3:指针变量名 = new 类型标示符[内存单元个数]
delete使用的一般格式:
格式1:delete 指针变量名
格式2:delete [] 指针变量名
int main()
{
int *a = new int ;
delete a;
int *b = new int[5];
delete [] b;
}
欢迎各位指出不足之处