C++关于delete的使用

1. delete安全用法:

void safe_release()
{
    void* t = m_ptr; //先赋值nullptr,再delete,可防止被在其它线程占用时,引起的错误
    m_ptr = nullptr; //方便以后检查指针是否有效,亦防止再次访问无效的指针
    delete t;        //释放内存
}

2. delete[]

void fun()
{
    int* pArr = new int[9];
    delete[] pArr;                //new[] 必须配合delete[]使用,有时使用delete了不会报错(例如delete基本类型或者结构体等的数组指针)
    
    string* pStr = new string[9];
    delete[] pStr;                //delete[]会逐个调用“对象数组”的每个对象的“析构函数”,这里用delete肯定报错(除非“这个类,没有析构函数”)
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值