2017-05-22 27 views
0

我定義爲副本的std ::矢量<uint8_t>爲char *

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

我一直在使用的reinterpret_cast試過兩個變量。但它不工作。有沒有什麼辦法可以像"strcpy"那樣複製或者打字轉換 我想複製'var''test'。 我該怎麼做?

回答

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尚未空終止。

+0

是的這是工作正常。謝謝 – Sruthy

相關問題