【发布时间】:2014-11-10 10:48:05
【问题描述】:
我正在尝试使用 shared_ptr 来保护 sqlite3 库在我的应用程序中引发的内存泄漏。
我需要将我的纯 c++ 代码转换为受保护的版本,而无需进行重大更改。我的代码的当前状态类似于:
sqlite3* db = NULL;
sqlite3_open(dbname.c_str(), &db );
sqlite3_close( db );
我已经试过了:
std::shared_ptr<sqlite3> db(NULL);
sqlite3_close( db.get() );
但我无法翻译 open 函数,因为它正在请求我无法使用共享指针模拟的 sqlite3** 参数。 我已经找到 std::shared_ptr 连接(rawConnec,sqlite3_close); 但是这种功能没有官方文档或任何示例。
我被屏蔽了,非常感谢你
【问题讨论】:
-
“这种函数”是构造函数,is documented.
-
对不起@CL。 ,我并不是说它没有记录在案。我找不到它。谢谢你的链接。无论如何,如果我不能将 shared_ptr 定义用作变量,我不明白我应该使用什么定义,因为我应该在“open”函数中将它作为双重引用传递。
标签: c++ sqlite shared-ptr