将shared_ptr与预先分配的指针一起使用

Use shared_ptr with preallocated pointer

本文关键字:指针 一起 分配 shared ptr      更新时间:2023-10-16

将预先分配的指针分配给shared_ptr对象有问题吗
例如:

some_type* 3rd_party_func(...)  
{  
  return new some_pointer;  
}  
re_val my_func()  
{  
shared_ptr<some_type> my_ptr(3rd_party_func());  
}

谢谢!

不,这根本不是问题。事实上,这很常见。作为奖励,如果您的第三方库返回一个指针,该指针应该使用库函数而不是delete来解除分配,您可以这样做:

shared_ptr<some_type> my_ptr(3rd_party_func(), 3rd_party_free);