Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
Vector 复制标准::向量<;uint8_t>;烧焦*_Vector_Char_Copy - Fatal编程技术网

Vector 复制标准::向量<;uint8_t>;烧焦*

Vector 复制标准::向量<;uint8_t>;烧焦*,vector,char,copy,Vector,Char,Copy,我有两个变量定义为 std::vector<uint8_t> var; char* test; std::vector-var; 字符*测试; 我试过使用reinterpret_cast。但它不起作用。有没有像“strcpy”这样的复制或类型转换方法 我想把'var'复制到'test'。 我该怎么做呢?假设您在内存中分配了足够的字符来保存向量中存储的内容。您可以像这样使用std::copy: #include <vector> #include <cstdin

我有两个变量定义为

std::vector<uint8_t> var; 
char* test;
std::vector-var;
字符*测试;
我试过使用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;
}
#包括
#包括
int main(int agrc,字符**argv){
std::向量var;
//在这里填入“var”
char*test=new char[var.size()];//使用正确的大小初始化它
std::copy(变量begin(),变量end(),test);
删除[]测试;
返回0;
}
请记住,如果您没有为
test
分配至少
var.size()
元素,则此操作将失败。此外,如果
test
是c字符串,则需要分配
var.size()+1
元素,并在
test
的最后一个元素中插入
\0
,前提是
var
尚未以null结尾