是否需要删除指针从sqlite3_column_blob()方法获取?

像这样:const void * test = sqlite3_column_blob(stat,1); 我可以删除或删除[]测试吗?

从sqllite文档 :

返回的指针有效,直到发生类型转换或调用sqlite3_step()或sqlite3_reset()或sqlite3_finalize()为止。 用于保存字符串和BLOB的内存空间会自动释放。 不要将sqlite3_column_blob()返回的指针传递给sqlite3_free()。

请查看其API手册。 如果它是C API,您可能必须free它。 如果它没有像sqlite3_free那样提供自己的function(例如pcre就这样做了),你必须使用该function。

你不能做的是使用C ++的delete运算符删除它,因为你有一个void指针。 您无法删除void指针,因为编译器必须知道其类型。 (而void是一种不完整的类型。你也不能删除不完整的类型)。