如何复制具有 const unsigned char * 类型的值?

Jac*_*ack 3 c sqlite constants char

我想将 SQLite 数据库中的一些值存储在缓冲区中,但 qlite3_column_text() 具有以下原型:

const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
Run Code Online (Sandbox Code Playgroud)

然后当我这样做时:

out[size] = sqlite3_column_text(stmt, 0);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

assignment discards qualifiers from pointer target type
Run Code Online (Sandbox Code Playgroud)

我也尝试使用strcpy(),但收到相同的错误消息。

Joa*_*son 5

这很容易strdup

out[size] = strdup((const char*)sqlite3_column_text(stmt, 0));
Run Code Online (Sandbox Code Playgroud)

请注意,这将 malloc 副本,因此您必须稍后在指针上调用 free() 以避免泄漏。

当然,这假设您的out数组可以存储 char* 类型的值,您没有显示它是如何定义的。