-3
有人可以帮我解决这个问题memcpy语法。我想在const void * test中,有一个错误,我无法解释由于代码在运行时崩溃。执行memcpy命令时出错 - 第二个参数
struct tHistoryRow
{
std::vector<unsigned char> blob;
… … …
};
tHistoryRow tempHistoryRow;
unsigned int valueBlobSize = sqlite3_column_bytes(pStmt, SQLITE_HISTORYDB_INDEX_VALUE);
unsigned ssize = tempHistoryRow.blob.size();
tempHistoryRow.blob.resize(ssize + valueBlobSize);
const void * test = sqlite3_column_blob(pStmt, SQLITE_HISTORYDB_INDEX_VALUE);
std::memcpy(&tempHistoryRow.blob[ssize - valueBlobSize], test, valueBlobSize);
以上代码供您参考。
多亏了rG
为什么不咨询[参考文档](http://en.cppreference.com/w/cpp/string/byte/memcpy)? –
运行时代码崩溃意味着你的语法正常,但可能有一些内存违规 –
'&tempHistoryRow.blob [ssize-valueBlobSize]'看起来像你计算一个负指数,它包装到一个非常大的指数。看起来你真正需要的是来自'std :: vector'的'data'成员函数。 – NathanOliver