将共享指针从C ++中传出/将共享指针放在堆上

时间:2016-01-07 01:52:36

标签: c++ pointers

我试图通过void *将共享指针传递给Obj-C,因此它可以保留一个特定的对象,然后将其删除(通过C ++函数)。

这有用吗?

我想要一个更好的主意,但这似乎是获得对共享指针的引用的最快方法。只是想确保我的数学不在malloc上(因为我不经常使用它)。

std::shared_ptr<AAA> shared_ptr = getSharedPointer();
std::shared_ptr<AAA>* ptr = malloc(sizeof(std::shared_ptr<AAA>));
*ptr = shared_ptr;
return ptr;

1 个答案:

答案 0 :(得分:0)

通过搜索malloc和c ++(Using malloc instead of new, and calling the copy constructor when the object is created

找到

分配在OP中的代码中正常工作,但是需要手动调用析构函数并使用free()而不是delete。

我已经使用简单的单元测试进行了测试,这种方法可以正常递增和递减指针引用计数。

相关问题