簡體   English   中英

我的sqlite3 c函數正在泄漏內存

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM