Завершение динамической строки
char *sqlite3_str_finish(sqlite3_str*); void sqlite3_str_free(sqlite3_str*);
Интерфейс sqlite3_str_finish(X) уничтожает объект sqlite3_str X и возвращает указатель на буфер памяти, полученный с помощью sqlite3_malloc64(), содержащий сформированную строку. Чтобы избежать утечки памяти, вызывающее приложение должно передать возвращённое значение в sqlite3_free(). Интерфейс sqlite3_str_finish(X) может вернуть указатель NULL, если при формировании строки возникли ошибки. Интерфейс sqlite3_str_finish(X) также может вернуть указатель NULL, если строка в объекте sqlite3_str X имеет нулевую длину.
Интерфейс sqlite3_str_free(X) уничтожает и объект sqlite3_str X, и содержащуюся в нём строку. Вызов sqlite3_str_free(X) эквивалентен вызову sqlite3_free(sqlite3_str_finish(X)).
См. также списки объектов, констант и функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/str_finish.html