返回dereferenced new - 内存泄漏?

时间:2011-11-27 20:54:07

标签: c++ memory-leaks

我想知道这是否会导致内存泄漏:

std::string test() {
    return *(new std::string(""));
}

2 个答案:

答案 0 :(得分:12)

是的,这是内存泄漏。函数返回时,将复制原始字符串对象。

然后原来的新指针落在范围之外并且丢失了 - 泄漏。

答案 1 :(得分:0)

为了减少泄漏,使其返回参考:

std::string& test() {
   return *(new std::string(""));
}