SQLite的sqlite3_column_blob函數


SQLite3利用函數sqlite3_column_blob來返回blob字段的內容的指針,並通過sqlite3_column_bytes來返回對應該字段的長度。

只是一直有一個疑問就是通過sqlite3_column_blob返回的二進制blob內容的內存是誰來釋放,是由SQLite內部還是用調用者來釋放。

后來仔細觀察了內存變化發現,sqlite3_column_blob函數會預先分配一塊內存,每次調用sqlite3_step然后sqlite3_column_blob字段內容的時候,都會在這一個指定的空間內寫入,所以調用者不必去管理者塊內存,也因此,每次sqlite3_column_blob返回的二進制內容都需重新寫去到調用者需要的地方去,否則下次再有二進制讀出的時候,原來的內容就會被釋放掉。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM