使用 MySQL Connector C++ 1.05 时出现内存泄漏/删除错误。
连接器从执行查询返回一个指向结果集的指针。
我将指针分配给boost::shared_ptr
. 调用看起来像:
std::string query_text;
query_text = /* ... */;
boost::shared_ptr<sql::Statement> query(p_db_connection->createStatement());
if (!query)
{
return;
}
boost::shared_ptr<sql::ResultSet> query_results(query->executeQuery(query_text));
if (!query_results->next())
{
return;
}
以下是我的问题:
- 谁负责删除分配的结果集?
- 我应该使用
scoped_ptr
还是shared_ptr
只在函数中使用结果? - 执行另一个查询时结果是否有效?
我正在使用 MySQL 连接器 C++ 1.05、MS Visual Studio 2008 版本 9.0。