条款 16:成对使用 new 和 delete 时要采用相同形式
Use the same form in corresponding uses of new and delete.
std::string * stringArray = new std::string[100];
delete stringArray;
上面程序会产生未定义行为,至少后 99 个 string 的析构函数不会被调用,需要成对使用 new/delete 和 new []/delete []
需要注意尽量减少下列 typedef 申明,容易在释放资源时引起问题
typedef std::string AdressLines[4];
std::string* pal new AdressLines;
delete pal; // 行为未定义
delete [] pal; // 没问题