标签: c++ memory-leaks
我想知道这是否会导致内存泄漏:
std::string test() { return *(new std::string("")); }
答案 0 :(得分:12)
是的,这是内存泄漏。函数返回时,将复制原始字符串对象。
然后原来的新指针落在范围之外并且丢失了 - 泄漏。
答案 1 :(得分:0)
为了减少泄漏,使其返回参考:
std::string& test() { return *(new std::string("")); }