Перемещение данных
Мне нужно прочитать данные из одной функции и передать их в другую. Функции объявлены так
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;
}