effective c++ 条款16:成对使用new和delete时要采用相同形式
记住:
- 如果你在new表达式中使用[ ],必须在相应的delete表达式中也是用[ ]。如果你在new时不使用[ ],一定不要在delete时使用[ ]。
string* stringPtr1 = new string; string* stringPtr2 = new string[100]; ... delete stringPtr1; //删除一个对象 delete[] stringPtr2; //删除一个由对象组成的数组
最好不要用数组形式做typedef,基本都可以使用vector之类的
typedef string AddressLines[4]; string* pal = new AddressLines; //注意,这里相当于 new string[4] ... delete pal; //行为为定义 delete[] pal; //正确