sqlite 内存泄露解决方法

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) 来释放错误信息,防止内存泄露


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

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部