использование класса std :: vector для уже выделенного буфера не является решением. Объект std :: vector управляет памятью и освобождает ее во время уничтожения.
Сложным решением может быть написание собственного распределителя, который использует уже выделенный буфер, но вы должны быть очень осторожны в нескольких сценариях, таких как изменение размера вектора и т. Д.
Если у вас есть буфер void *, связанный через некоторые функции C API, тогда вы можете забыть о преобразовании в std :: vector.
Если вам нужна только копия этого буфера, это можно сделать так:
std::vector< unsigned char> cpy(
(unsigned char*)buffer, (unsigned char*)buffer + bufferSize);
где bufferSize - размер в символах скопированного буфера.