-1
我有一个函数,将整数数组拷贝到向量中,并且与std :: copy调用正常工作,但是当我将std :: copy复制到std :: memcpy时,它无法正常工作。有人可以指出我做错了什么吗?将std :: copy转换为std :: memcpy不起作用?
void Walle_SSD1306::RadarD(uint8_t *RadarLL, uint8_t isFirstRadarLogo)
{
//Following two copy statement is working correctly
std::copy(
RadarLL+128
, RadarLL + 8192
, buffer.begin()+128
);
std::copy(
RadarLL+38
, RadarLL + 90
, buffer.begin()+38
);
//But when I change copy to memcpy following code is not working correctly
std::memcpy(
(buffer.begin()+128) , (RadarLL+128), (8192 - 128)*sizeof(uint8_t)
);
std::memcpy(
(buffer.begin()+38), (RadarLL+38), (52*sizeof(uint8_t))
);
//where buffer is...
std::vector<uint8_t> buffer;
这种表达buffer.begin()+ 128在使用的memcpy是无效的。你应该至少使用&bffer [128]或buffer.data()+ 128 –
当你说“不工作”时,我们不知道这意味着什么。它甚至编译? –
代码正在编译但缓冲区没有从RadarLL获得正确的值。你能指出我正在做的任何错误吗? – user5572904