我在C++應用程序中使用sqlite3_prepare_v2並獲取內存泄漏,當實例化一個 sqlite3_stmt外函數調用sqlite3_prepare_v2。sqlite3_prepare_v2取決於作用域
樣本:
sqlite3_stmt* ps=NULL;
void prepare(void)
{
if(ps == NULL)
sqlite3_prepare_v2(&db,"insert into nomatterbd...",-1,&ps,NULL);
}
備調用,關閉應用程序,你會得到內存泄漏。
這樣做是這樣的:
void prepare(void)
{
sqlite3_stmt* ps=NULL;
sqlite3_prepare_v2(&db,"insert into nomatterbd...",-1,&ps,NULL);
}
沒有內存泄漏。經過最新的合併檢查後檢查 。
我的目標是在每次插入或更新時打開和關閉數據庫。爲了加快整個 的事情,我想準備插入和更新的全局語句。 不幸的是,如果全局語句和曾經創建的語句導致內存泄漏,這將會失敗。
任何人都可以幫忙嗎?謝謝。
如果你能提供一個**完整的程序來證明你的問題,這將有所幫助。請保留**短**(20行或更少是完美的)。請將其直接複製粘貼到問題中,以便我們編譯它並查看是否得到相同的結果。請參閱:http://sscce.org/。 –