C++ アプリケーション内で sqlite3_prepare_v2 を使用し、sqlite3_prepare_v2 を呼び出している関数の外部で sqlite3_stmt をインスタンス化すると、メモリ リークが発生します。
サンプル:
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);
}
メモリリークはありません。最新の合併でチェック。
私の目標は、挿入または更新のたびに DB を開いたり閉じたりすることです。全体を高速化するために、挿入および更新用のグローバル ステートメントを準備したいと思います。残念ながら、グローバルで一度作成されたステートメントがメモリリークを引き起こす場合、これは失敗します。
誰でも助けることができますか?ありがとうございました。