3

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

4

2 回答 2

8

sqllite 文档

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

于 2010-03-23T05:16:40.370 回答
0

查看它的 API 手册。如果它是 C API,您可能必须使用free它。如果它不提供自己的函数,如 sqlite3_free(例如 pcre 这样做),则必须使用该函数。

你不能做的是使用 C++ 的删除操作符删除它,因为你有一个 void 指针。您不能删除 void 指针,因为编译器必须知道它的类型。(并且 void 是一个不完整的类型。你也不能删除不完整的类型)。

于 2008-11-28T06:36:09.330 回答