近日在项目中使用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) 来释放错误信息,防止内存泄露
在目前开发中出现的问题均可通过以上两个办法解决,欢迎补充。
总结以上是内存溢出为你收集整理的sqlite 内存泄露解决方法全部内容,希望文章能够帮你解决sqlite 内存泄露解决方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)