-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