【发布时间】:2011-11-18 23:41:23
【问题描述】:
给定一个简单的 C++ 类,其中包含一个私有成员变量 name 和一个基本构造函数:
#include <QString>
class Testclass
{
private:
QString *name;
public:
Testclass(): name(new QString()) {}
};
为什么valgrind的memcheck报错1块8字节,用这个构造器肯定丢了?
【问题讨论】:
-
动态分配
name有什么意义? -
是在您创建对象时泄漏,还是稍后在您重新分配指针时(可能没有
delete-ing 第一个指针)? -
您应该将您的任何
new视为一个大而闪烁的警告标志,并将其视为错误,直到您证明它实际上是正确的。
标签: c++ memory-leaks constructor new-operator valgrind