将std :: vector <uint8_t>复制到char *

时间:2017-05-22 11:08:25

标签: vector char copy

我有两个变量定义为

std::vector<uint8_t> var; 
char* test;

我尝试过使用reinterpret_cast。但它不起作用。有没有像"strcpy"这样的方法来复制或输入转换 我想将'var'复制到'test'。 我怎么能这样做?

1 个答案:

答案 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尚未终止。