正文:
分配一个内存 并 新建一个 std::shared_ptr 引用它,有两种方法:
- 使用 std::make_shared;
- 使用 std::shared的构造,即 std::shared(new xxx)。
推荐使用 std::make_shared来 分配内存并新建shared指针。但是make_shared无法指定deletor,因此如果分配的是一个数组,那么需要考察make_shared的底层是不是调用的delete[],如果是则安全,如果不是则存在一定的内存泄露可能性,具体参考:
需要注意的是,从 c++ 20 开始,才可以使用 std::make_shared 来创建数组,具体用法见: