3
A
回答
12
是的,这是一个内存泄漏。函数返回时,将复制原始字符串对象。
然后原来的new'ed指针超出了范围,并失去了 - 泄漏。
0
为了让更少的泄漏使其返回一个参考:
std::string& test() {
return *(new std::string(""));
}
+1
所以当我例如有std :: string&abc =测试();我打电话删除&abc;不会有任何泄漏? – Zaffy
相关问题
- 1. 返回指针上的内存泄漏
- 2. 返回对象上的内存泄漏
- 3. 内存泄漏与新的和删除
- 4. 返回NSString没有内存泄漏?
- 5. 内存泄漏返回从类
- 6. 返回堆栈和内存泄漏
- 7. 内存泄漏警告返回
- 8. 键盘解除内存泄漏
- 9. 如何将引用返回给没有内存泄漏的新对象? C++
- 10. C++内存泄漏新增和删除
- 11. FFMPEG解码 - 内存泄漏
- 12. 解决PHP内存泄漏
- 13. 了解内存泄漏
- 14. Android内存泄漏了解
- 15. 删除[]和内存泄漏
- 16. 返回const引用或引用的方法是否会导致内存泄漏?
- 17. 使用回调时的内存泄漏
- 18. 通过引用返回存储为指针的值 - 内存泄漏?
- 19. 内存泄漏
- 20. 内存泄漏:
- 21. 内存泄漏
- 22. 内存泄漏
- 23. 内存泄漏
- 24. 内存泄漏
- 25. 内存泄漏
- 26. 内存泄漏
- 27. 内存泄漏
- 28. 内存泄漏
- 29. 内存泄漏:
- 30. 内存泄漏
你为什么不干脆'返回“”;'? – fredoverflow
@FredOverflow这只是一个例子 – Zaffy
类似的问题得到了[一个非常详细的答案+解释这里](http://stackoverflow.com/a/8840302/85371) – sehe