我有一个返回字节向量的函数(unsigned chars)。如何将数据转换为数组。显然,向量是连续的虚拟内存,因此应该很容易。我试过这个
std::vector<unsigned char> a;
unsigned char* b = &a[0];
但我没有运气。
我的代码看起来像这样
// 20 is length of returned vector
const int SOME_LENGTH = 20;
vector<unsigned char> a = get_some_bytes(SOME_LENGTH);
unsigned char b[SOME_LENGTH];
b = &a;
但我收到此错误
error: incompatible types in assignment of ‘std::vector<unsigned char>*’ to ‘unsigned char [20]’
答案 0 :(得分:3)
答案 1 :(得分:0)
你不能像那样初始化数组。 你必须使用指针。
这是一个简单的解决方案。 如果您知道尺寸,可以这样做:
SaveChanges()
但是如果你不知道大小,那么你必须使用const size_t SIZE = 5000; // for example
unsigned char b[SIZE];
for(int i = 0; i < a.size(); i++)
b[i] = a[i];
运算符
new
修改强>
在您的情况下,您可以这样做:
unsigned char * b = new unsigned[a.size()];
for(int i = 0; i < a.size(); i++)
b[i] = a[i];