其他分享
首页 > 其他分享> > c-什么是裸露指针?

c-什么是裸露指针?

作者:互联网

观察Naked Pointers(请参阅第一个答复),问题非常简单:

什么是裸指标?

解决方法:

这是一个简单的例子:

#include <memory>

struct X { int a,b,c; };

int main()
{
    std::shared_ptr<X> sp(new X);
    X* np = new X;
    delete np;
}

np是指向X类型对象的指针-如果您已动态分配(新的/ malloc)该对象,则必须删除/释放该对象…像np这样的简单指针称为“裸指针”.

sp是一个持有指向托管资源的指针的对象,这意味着您可以像使用np一样使用它,但是当不存在拥有此资源的shared_ptr对象时,该资源将被释放,因此您不必删除它.智能指针负责内存管理,因此您不必;)

标签:c,pointers,terminology
来源: https://codeday.me/bug/20191010/1886874.html