博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLite的sqlite3_column_blob函数
阅读量:6998 次
发布时间:2019-06-27

本文共 408 字,大约阅读时间需要 1 分钟。

SQLite3利用函数sqlite3_column_blob来返回blob字段的内容的指针,并通过sqlite3_column_bytes来返回对应该字段的长度。

只是一直有一个疑问就是通过sqlite3_column_blob返回的二进制blob内容的内存是谁来释放,是由SQLite内部还是用调用者来释放。

后来仔细观察了内存变化发现,sqlite3_column_blob函数会预先分配一块内存,每次调用sqlite3_step然后sqlite3_column_blob字段内容的时候,都会在这一个指定的空间内写入,所以调用者不必去管理者块内存,也因此,每次sqlite3_column_blob返回的二进制内容都需重新写去到调用者需要的地方去,否则下次再有二进制读出的时候,原来的内容就会被释放掉。

转载于:https://www.cnblogs.com/BlueWinters/p/3662332.html

你可能感兴趣的文章