Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 执行memcpy命令时出错-第二个参数_C++_Sqlite - Fatal编程技术网

C++ 执行memcpy命令时出错-第二个参数

C++ 执行memcpy命令时出错-第二个参数,c++,sqlite,C++,Sqlite,有人能帮我解释一下这个memcpy语法吗。我假设在const void*测试中,由于运行时代码崩溃,有一个错误我无法解释 struct tHistoryRow { std::vector<unsigned char> blob; … … … }; tHistoryRow tempHistoryRow; unsigned int valueBlobSize = sqlite3_column_bytes(pStmt, SQLITE_HISTORYDB_INDEX_VA

有人能帮我解释一下这个memcpy语法吗。我假设在const void*测试中,由于运行时代码崩溃,有一个错误我无法解释

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

从逻辑角度来看,索引应该是

std::memcpy(&tempHistoryRow.blob[ssize], test, valueBlobSize);

因为我假设,您希望将数据附加到向量对象。

为什么不在运行时查询?代码崩溃意味着您的语法正常,但可能存在一些内存冲突&tempHistoryRow.blob[ssize-valueBlobSize]看起来您的计算是一个负索引,它围绕着一个非常大的索引。看起来您真正需要的是std::vector.std::memcpy&tempHistoryRow.blob[ssize-valueBlobSize]、test、valueBlobSize;-我可能是在暗中胡乱捅了一刀,但这不应该是[ssize],因为你还没有用新的blob数据更新它吗?@NathanOliver@Chris Turner不明白你的意思。请再解释一下。谢谢