Перемещение данных

Мне нужно прочитать данные из одной функции и передать их в другую. Функции объявлены так

void Read(void * data, size_t len);
void Write(const uint8_t * data, size_t len);

Функции из сторонних библиотек и модификации не подлежат.

Такой код корректен?

size_t len = ...;
std::unique_ptr<uint8_t[]> data(new uint8_t[len]);
Read(data.get(), len);
Write(data.get(), len);

Или можно как-то проще?


Ответы (1 шт):

Автор решения: Harry

Ну, если len невелико, то

{
    uint8_t * data;
    Read(data = (uint8_t*)alloca(len),len);
    Write(data,len);
}

Ну, а если побольше...

{
    uint8_t * data;
    Read(data = new uint8_t[len],len);
    Write(data,len);
    delete[] data;
}
→ Ссылка