Я новичок в C / C ++ и управлении памятью
Я получил утечку памяти в программе и использую Visual Leak Detector, чтобы найти.
_bstr_t record = "";
for (int rownum = 0; rownum < num_rows; ++rownum) {
const int num_cols = PQnfields(res2);
for (int colnum = 0; colnum < num_cols; ++colnum) {
if (PQgetisnull(res2, rownum, colnum) == 0) {
string data = PQgetvalue(res2, rownum, colnum);
record = record + data.c_str();
}
else
{
record = record + L"<NULL>";
}
if (colnum + 1 < num_cols) {
record = record + "#";
}
}
recordMap[rownum] = record;
PQclear(res2);
}
И это указывает на то, что строка record = record + data.c_str();
вызывает утечку памяти.
Я пытался ::SysFreeString(record)
, но не работает
Есть ли способ сделать это?