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