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是个坏主意