0
Record* MyClass::get_record (int id)
{
Record* rec = new Record();
Record* compressed_rec;
/* ... code that gets compressed_rec into memory ... */
compressed_rec->decompress(rec);
return rec;
}
此功能总是像这样使用:Valgrind的内存泄露
Record* rec = my_class_instance.get_record (id);
show_contents_of(rec);
delete rec;
valgrind
说,我在第一行(Record* rec = new Record();
)泄漏内存。为什么?
代码中被剪切的是什么? – hmjd
要么是假阳性,要么是其他地方有泄漏。 – juanchopanza
关于内存泄漏我会信任valgrind,并说你有一个代码路径,它不会删除内存(例如通过异常)。由于缺乏这么多的代码,我们不能告诉你更多,但猜测。并想知道为什么你不使用智能指针,这可能会解决问题... – PlasmaHH