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