|
|
1
5
看起来您实际上存储了基类的实例。派生()在堆栈上创建一个对象,然后使_唯一将其传递给Base的构造函数。这是对象切片。 这并不能解释泄漏的原因,但表明代码可能无法达到预期效果。 删除:free()并不总是将内存返回系统。Libc将为将来的malloc()保留此内存。这可能解释了你的观察结果。 我同意@cmaster下面的评论。Valgrind确实跟踪malloc/free。经过一点研究,我发现了另一个关于stackoverflow的问题,这解释了观察结果。 包括iostream
更多详细信息: Valgrind: Memory still reachable with trivial program using <iostream> |