我有一个(例如)uint8_t
s的数组。是std :: unique_ptr为数组分配内存的错误工具?
是std::unique_ptr
错误的工具用来管理内存中的这个对象?
例如,
std::unique_ptr<uint8_t> data(new uint8_t[100]);
这是否会产生不确定的行为?
我想要一个智能指针对象来为我管理一些分配的内存。 std::vector
并不理想,因为它是一个动态对象。 std::array
也不好,因为分配的大小在编译时是未知的。我不能使用[目前,2016-03-06]实验std::dynarray
,因为这在Visual Studio 2013中尚不可用。
不幸的是我必须符合VS2013,因为规则。
你知道你可以使用[构造函数](http://en.cppreference.com/w/cpp/container/vector/vector)或手动[调整大小]设置矢量的大小, (http://en.cppreference.com/w/cpp/container/vector/resize)。所以你仍然可以将它用作“一次性动态数组”。 –
“'std :: vector'不理想,因为它是一个动态对象” - 为什么这会是一个量级问题,让你尝试手动内存管理和/或实验性功能呢? – DevSolar
有能力调整内存大小,甚至在分配后清除内存的人将会是一个严重的问题。 – user3728501