【发布时间】:2012-06-21 03:49:32
【问题描述】:
我在 c++ 应用程序中使用 sqlite3_prepare_v2 并在实例化一个 调用 sqlite3_prepare_v2 的 sqlite3_stmt 外部函数。
样本:
sqlite3_stmt* ps=NULL;
void prepare(void)
{
if(ps == NULL)
sqlite3_prepare_v2(&db,"insert into nomatterbd...",-1,&ps,NULL);
}
调用准备,关闭应用程序,你会得到内存泄漏。
这样做:
void prepare(void)
{
sqlite3_stmt* ps=NULL;
sqlite3_prepare_v2(&db,"insert into nomatterbd...",-1,&ps,NULL);
}
没有内存泄漏。 用最新的合并检查。
我的目标是在每次插入或更新时打开和关闭数据库。为了加快整个 事情,我想为插入和更新准备全局语句。 不幸的是,如果全局和一旦创建的语句导致内存泄漏,这将失败。
谁能帮忙?谢谢。
【问题讨论】:
-
如果您能提供一个完整程序来演示您的问题,那将会有所帮助。请保持简短(20 行或更少是完美的)。请将其直接复制粘贴到问题中,以便我们编译它并查看是否得到相同的结果。请参阅:sscce.org。