我有两个变量定义为
std::vector<uint8_t> var;
char* test;
我尝试过使用reinterpret_cast。但它不起作用。有没有像"strcpy"
这样的方法来复制或输入转换
我想将'var'
复制到'test'
。
我怎么能这样做?
答案 0 :(得分:0)
假设您已在内存中分配了足够的字符来保存向量中存储的内容。您可以像这样使用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
尚未终止。