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肯定报错(除非“这个类,没有析构函数”)
}
本文介绍了在C++中安全使用delete和delete[]的方法。通过示例代码详细解释了如何避免野指针和悬挂指针的问题,特别是对于new[]分配的数组进行正确的释放操作。
1408

被折叠的 条评论
为什么被折叠?



