sqlite3_prepare_v2取决于范围

sqlite3_prepare_v2 depends on scope

本文关键字:范围 取决于 prepare sqlite3 v2      更新时间:2023-10-16

>我在 C++ 应用程序中使用 sqlite3_prepare_v2 并在实例化sqlite3_stmt调用sqlite3_prepare_v2的外部函数。

样本:

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);
}

无内存泄漏。检查最新合并。

我的目标是在每次插入或更新时打开和关闭数据库。为了加快整体事情,我想准备全局报表以进行插入和更新。不幸的是,如果全局和一旦创建的语句导致 mem 泄漏,这将失败。

谁能帮忙?谢谢。

你在叫sqlite3_finalize()吗?

http://sqlite.org/c3ref/finalize.html

您的问题没有说明何时发生内存泄漏 - 我猜程序何时退出。