std::string* stringArray = new std::string; delete stringArray; //正确的 //delete[] stringArray;错误的
std::string* stringArray = new std::string[100]; //delete stringArray;错误的 delete[] stringArray; //正确的
- new数组记得delete加上[],否则会因为少delete了对象从而造成memory leak
//将string[4]数组声明为AddressLines typedef std::string AddressLines[4]; std::string* pal = new AddressLines;//new AddressLines相当于new std::string[4]; delete [] pal;//正确 //delete pal;错误的
??不明白AddressLines为什么代表string[4],
- 如果你在new表达式中使用[],必须在相应的delete表达式中也使用[]。如果你在new表达式中不使用[],一定不要在相应的delete表达式中使用[]