为什么sqlite3_column_text
会返回unsigned char *
,
但是sqlite3_bind_text
需要const char *
。
当你要在数据库中存储一个字节数组时,这可能会很感兴趣。
答案 0 :(得分:2)
如果你想存储一些字节数组(不是空终止字符串),你应该使用sqlite3_bind_blob而不是sqlite3_bind_text
(它想要一个文本,即一个空的 - 终止字符串)。
如果您知道要处理以null结尾的字符串,请使用sqlite3_bind_text
,也许使用强制转换为(const char*)
;在C版本中,不要在运行时更改任何数据(除了浮点或更大或更小的整数类型的数值转换),它们只是改变编译时类型(至少对于常见系统上的指针类型) 。
(在上个世纪,一些奇怪的机器 - 例如Cray1-具有不同的指针类型大小,例如char*
指针没有与int*
指针相同的位数。 / SUP>