我想知道如何将 std::vector<vector>
转换为 void*
,例如:
std::vector<ColorData> pixels_ (w*h, background_color);
现在我想要将pixels_
转换为void*
,以便我可以对pixels_
进行memcpy
。
memcpy ((void*)destinationBuffer->pixels_, (void*)sourceBuffer->pixels_, \
sizeof(ColorData)*destinationBuffer->width_*destinationBuffer->height_);
但当我运行这段代码时,出现了以下错误:
从类型 'std::vector<image_tools::ColorData>' 到类型 'void*' 的转换是无效的
我该如何将 std::vector<vector>
转换为 void*
?
.data()
函数获取指向底层数据的指针。否则,您可以使用&vec[0]
。但这只有在确实需要时才能这样做,通常有更好的方式(例如所提到的 std::copy)。 - RyanP