要分配一个 char* 数组,我通常会写如下内容:
char* arr = new char[size];
如何使用 boost::shared_ptr(或者可能是 boost::shared_array)和 boost::make_shared 来实现相同的目标?
我的猜测是:
1) boost::shared_ptr<char[]> arr = boost::make_shared<char[]>(size);
2) boost::shared_ptr<char> arr = boost::make_shared<char>(size);
3) boost::shared_ptr<char> arr = boost::shared_ptr<char>(new char[size]);
最后一个看起来是对的,但是否保证在销毁时会调用 delete [] arr ?