sqlite3 иногда выделяет строки, которые должны быть освобождены пользователем, такие как сообщение об ошибке из вызова sqlite3_exec (). Поиск на этой странице
http://www.sqlite.org/capi3ref.html
для строки sqlite3_free
, и вы найдете несколько таких случаев. Вы уверены, что правильно обрабатываете эти случаи в своем коде?
По моему опыту, sqlite3 обычно не пропускает память самостоятельно, хотя ее использование памяти увеличивается очень медленно до определенной точки, поскольку он кэширует некоторую информацию, а его внутренний распределитель памяти резервирует некоторые блоки памяти. Как вы обнаружили утечку памяти и как вы определили sqlite3 как причину?
Использовали ли вы средства отладки утечек памяти MSVC? Visual Studio предоставляет средство отладки памяти на основе исходного кода:
http://msdn.microsoft.com/en-us/library/x98tx3cf%28v=VS.100%29.aspx
Это должно помочь вам точно определить причину утечки памяти.