Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不使用memcpy从sqllite数据库获取blob_C_Sqlite_Memcpy - Fatal编程技术网

不使用memcpy从sqllite数据库获取blob

不使用memcpy从sqllite数据库获取blob,c,sqlite,memcpy,C,Sqlite,Memcpy,有没有办法从列中提取blob并将其所有权传递给其他人?当我从sqlite3表中获取blob(或其他类型的数据)时,我希望避免额外的分配和memcpy 根据文件: 返回的指针在类型转换发生之前是有效的 或直到sqlite3_步骤()或sqlite3_重置()或 调用sqlite3_finalize()。用来存放字符串的内存空间 水滴会自动释放。不要传递返回的指针 从sqlite3_column_blob()、sqlite3_column_text()等到 sqlite3_free() 例如: 我将

有没有办法从列中提取blob并将其所有权传递给其他人?当我从sqlite3表中获取blob(或其他类型的数据)时,我希望避免额外的分配和memcpy

根据文件:

返回的指针在类型转换发生之前是有效的 或直到sqlite3_步骤()或sqlite3_重置()或 调用sqlite3_finalize()。用来存放字符串的内存空间 水滴会自动释放。不要传递返回的指针 从sqlite3_column_blob()、sqlite3_column_text()等到 sqlite3_free()

例如:
我将位图对象存储为sqlite db中的blob。当我在这个位图上有一个名为setPixels的方法时,它将指针的所有权传递给那个位图。在当前的解决方案中,我为每个位图分配了两次内存。使用sqlite从db中取出一次,将新指针传递到位图时第二次。

sqlite 3\u column\u blob返回的缓冲区是内部的;没有改变其所有权的机制

如果您的blob真的太大,以至于缓冲区管理对性能有影响,那么您可以和