Я работаю с каркасом черного ящика (cdg), который заполняет массив uint32_t
со значениями. вызов выглядит так:Передача исходного указателя массива на unique_ptr
std::size_t dataCount = 100;
uint32_t* data = new uint32_t[dataCount];
cdg.generate(data);
К сожалению, рамки не использовать шаблоны, так что я должен пройти в uint32_t*
. Чтобы избавиться от необработанного указателя, я хочу «обернуть» его в std::unique_ptr<uint32_t>
. Таким образом, я думаю, что мне нужно использовать std::unique_ptr<uint32_t[]>
. Есть ли способ, чтобы преобразовать сырой указатель в unique_ptr
или я должен сделать что-то вроде этого:
const std::size_t dataCount = 100;
std::unique_ptr<uint32_t[]> data = std::make_unique<uint_32_t[]>(dataCount);
cdg.generate(data.get());
Использовать 'std :: vector' и' std :: vector :: data() '? – BoBTFish
Почему бы не использовать вектор uint32_t? – finlaybob
И если 'dataCount' постоянный, используйте' std :: array' – gurka