好的我对这种方法不熟悉,所以可能是错的。但基本上我想要一个shared_ptr
数组。使用Boost 1.53+,似乎无需使用make_shared_array
。无论如何,我甚至不想分配它 - 但是从指针和大小创建它,并让它被管理。
所以:
// I have a (char* p) to the array, and a (size_t sz) specifying the length of it
// shall I create a shared_ptr like this...
boost::shared_ptr<char[]> sp(p, sz); // is this even right?
// now, how can I get the size of the structure? (assuming sz is out of scope)
丢了吗?那么我可以将所有内容包装在另一个类中,该类还会记住存储数组的大小吗?
答案 0 :(得分:1)
你可以这样做:
boost::shared_ptr<char[]> sp(new char[100]);
但是您需要手动跟踪大小(在这种情况下为100)。