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肯定报错(除非“这个类,没有析构函数”)
}