0
我定義爲副本的std ::矢量<uint8_t>爲char *
std::vector<uint8_t> var;
char* test;
我一直在使用的reinterpret_cast試過兩個變量。但它不工作。有沒有什麼辦法可以像"strcpy"
那樣複製或者打字轉換 我想複製'var'
到'test'
。 我該怎麼做?
我定義爲副本的std ::矢量<uint8_t>爲char *
std::vector<uint8_t> var;
char* test;
我一直在使用的reinterpret_cast試過兩個變量。但它不工作。有沒有什麼辦法可以像"strcpy"
那樣複製或者打字轉換 我想複製'var'
到'test'
。 我該怎麼做?
假設你已經在內存中分配了足夠的字符來存放向量中存儲的內容。您可以使用std::copy
這樣的:
#include <vector>
#include <cstdint>
int main(int agrc, char** argv){
std::vector<std::uint8_t> var;
//fill "var" here somehow
char* test = new char[var.size()];//init this with the correct size
std::copy(var.begin(),var.end(),test);
delete [] test;
return 0;
}
請記住,如果你還沒有分配至少var.size()
元素test
這將失敗。此外,如果test
旨在爲c字符串,則需要分配var.size()+1
元素並將\0
插入test
的最後一個元素中,前提是var
尚未空終止。
是的這是工作正常。謝謝 – Sruthy