【发布时间】:2014-05-21 10:38:13
【问题描述】:
有没有办法从列中获取 blob 并将其所有权传递给其他人?当我从 sqlite3 表中获取 blob(或其他类型的数据)时,我想避免额外的分配和 memcpy。
根据文档:
在类型转换发生之前,返回的指针都是有效的 如上所述,或者直到 sqlite3_step() 或 sqlite3_reset() 或 sqlite3_finalize() 被调用。用于保存字符串的内存空间 并且 BLOB 会自动释放。不要传递返回的指针 从 sqlite3_column_blob()、sqlite3_column_text() 等进入 sqlite3_free().
例如: 我将位图对象存储为 sqlite db 中的 blob。当我在这个位图上有一个名为 setPixels 的方法时,它将指针的所有权传递给该位图。在当前解决方案中,我为每个位图分配内存两次。一次是使用 sqlite 从数据库中取出它,第二次是在将新指针传递给位图时。
【问题讨论】: