[英]my sqlite3 c function is leaking memory
知道為什么我每次調用此函數都會泄漏內存嗎?
char *getData(sqlite3 *db)
{
char *ret;
sqlite3_stmt *res;
int rc = sqlite3_prepare_v2(db, SELECT_STATEMENT_SQL, -1, &res, 0);
if (rc != SQLITE_OK) {
sprintf(stderr, "%s\n", sqlite3_errmsg(db));
return stderr;
}
rc = sqlite3_step(res);
if (rc == SQLITE_ROW) {
ret = sqlite3_column_text(res, 0);
} else {
ret = "error!";
}
sqlite3_free(res);
return ret;
}
您需要調用sqlite3_finalize()才能正確釋放為該語句分配的內存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.