c++ - 混合 shared_ptr 和普通 ptr

标签 c++ smart-pointers

我有一个 shared_ptr 指向动态分配的 char 内存缓冲区。让我称其为 shared_ptr OwnerSharedPointer

现在如果我声明:

char * borrowerPtr;

然后这样做:

borrowerPtr = OwnerSharedPointer.get();

并将borrowerPtr 传递给最终使用存储在已分配内存中的数据的某个函数。这有什么问题吗?

最佳答案

Is there anything wrong with this?

可能吧。我可以想到两种情况:

  1. 函数在指针上调用delete
  2. 共享指针的引用计数变为 0,并且在使用 borrowerPtr 之前删除指针对象。

关于c++ - 混合 shared_ptr 和普通 ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34875385/

相关文章:

c++ - 如何找到我的进程在 Linux 中打开的文件句柄?

c++ - 何时在C++中使用extern

c++ - 智能指针和长时间运行的方法

c++ - 为什么要将 DB 连接指针对象实现为引用计数指针? (C++)

c++ - std::unique 指针和自定义 lambda 删除器错误

c++ - C++11 中 RAW 指针的智能 vector ?

c++ - x86 和 x64 上 pow 的不同结果

c++ - 错误:尝试使用模数时出现 “expression must have integral or unscoped enum type”

C++ 重构 : change method name, 输入和输出

c++ - deep_const_ptr 复制构造函数