sqlite 内存泄露解决方法

近日在项目中使用sqlite3作数据库,在开发的过程中,无论使用文件库还是内存库总会发生内存泄露的问题。

经过查找及在网上寻找解决方案,总结解决方法如下:

1. 在使用

sqlite3_get_table(
sqlite3 *db,/* An open database */
const char *zsql,/* sql to be evaluated */
char ***pazResult,/* Results of the query */
int *pnRow,/* Number of result rows written here */
int *pnColumn,/* Number of result columns written here */
char **pzErrmsg /* Error msg written here */
);

后,要调用 sqlite3_free_table(pazResult) 来释放结果集,防止内存泄露


2. 在使用

sqlite3_exec(
sqlite3*,/* An open database */
const char *sql,/* sql to be evaluated */
int (*callback)(void*,int,char**,char**),/* Callback function */
void *,/* 1st argument to callback */
char **errmsg /* Error msg written here */
);

后,要调用 sqlite3_free(*errmsg) 来释放错误信息,防止内存泄露


在目前开发中出现的问题均可通过以上两个办法解决,欢迎补充。

相关文章

安装 在Windows上安装SQLite。 访问官网下载下Precompliled Binaries for Windows的两个压缩包。 创建s...
一、安装 下载地址:http://www.sqlite.org/download.html 将Precompiled Binaries for Windows下的包下...
实例: 会员信息管理 功能:1.查看数据库 2.清空数据库 3.增加会员 4.删除会员 5.更新会员 6.查找会员  ...
关于SQLite SQLite是一个轻量的、跨平台的、开源的数据库引擎,它的在读写效率、消耗总量、延迟时间和整...