C++ 内存泄漏-重新分配
我不熟悉C/C++和内存管理 我在程序中得到内存泄漏,并使用可视泄漏检测器来查找C++ 内存泄漏-重新分配,c++,memory-leaks,C++,Memory Leaks,我不熟悉C/C++和内存管理 我在程序中得到内存泄漏,并使用可视泄漏检测器来查找 _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,
_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);
}
\u bstr\u t record=“”;
对于(int rownum=0;rownum
并指出linerecord=record+data.c_str()代码>使内存泄漏
我尝试了::SysFreeString(record)
,但没有成功
有什么办法吗?我认为内存泄漏发生在bstr\u t
赋值运算符或+运算符中。你应该查一下。什么是bstr\u t
?@Shawn我错了。这应该是同一个问题。这是你从图书馆写的东西吗?肖恩,是的,这是从图书馆写的。提到哪一个会有帮助……嗨,奎潘。我想是的,但我不知道如何修复这里,你能帮我一个建议吗?试着用record+=data.c_str()替换它;不确定它是否有效,但如果无效,我将进一步帮助你。思考是好的,似乎很少有人这样做,但了解更好。为了让这成为一个好的答案,你应该解释你为什么会这样想,并提供如何解决它的建议。