C++11 如何将int变量的地址分配给unique_ptr
这是代码C++11 如何将int变量的地址分配给unique_ptr,c++11,C++11,这是代码 int main() { unique_ptr <int> p {nullptr}; int val = 100; p = &val; // Not working - compilation error p = move(&val); // Not working - compilation error cout << *p; return 0; } intmain() { 唯一的
int main()
{
unique_ptr <int> p {nullptr};
int val = 100;
p = &val; // Not working - compilation error
p = move(&val); // Not working - compilation error
cout << *p;
return 0;
}
intmain()
{
唯一的_ptrp{nullptr};
int-val=100;
p=&val;//不工作-编译错误
p=move(&val);//不工作-编译错误
使用唯一性重置:
p.reset(&val);
当然,在这种特殊情况下,当p
超出范围并试图删除int时,这将导致未定义的行为,但这是另一回事。使用unique\u ptr::reset
:
p.reset(&val);
当然,在这种特殊情况下,当p
超出范围并试图删除int时,这将导致未定义的行为,但这是另一回事。只应将动态分配的对象分配给unique\u ptr
s,因为unique\u ptr
可能尝试删除对象ect
至于实际问题,unique\u ptr
的reset()
功能用于重新分配指针。只应将动态分配的对象分配给unique\u ptr
s,因为unique\u ptr
可能尝试删除对象
至于实际问题,unique\u ptr
的reset()
函数用于重新分配指针。将自动存储持续时间变量的地址分配给unique\u ptr是个坏主意