小编Mer*_*ain的帖子

将原始指针的所有权转移给unique_ptr

我已经为新运算符分配了一个指针,并将内存的所有权分配给了一个新的unique_ptr.我是否必须删除使用new分配的指针?这里有内存泄漏吗?

#include <iostream>
#include <memory>

using namespace std;


int main()
{
    int *a = new int;

    *a = 5;
    std::unique_ptr<int> auptr;

    auptr.reset(a);
    int *b = auptr.get();
    cout << *b << endl;

    cout << *a << endl;



    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ memory-leaks

2
推荐指数
1
解决办法
158
查看次数

int*p = 10怎么样; 工作?

我有一个声明int *p = 10;.这个语句在任何编译器上执行都很好.我也知道10被放入只读存储器中.有没有办法可以访问这个内存.如何在控制台上打印?声明printf("%d",*p)崩溃了.如何在控制台上进行打印.

编辑

int main()
{
   int *p = 10;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码编译好,运行正常.

int main()
{
    int *p = 10;
    printf("\n%d",*p); //crashes
}
Run Code Online (Sandbox Code Playgroud)

上面的代码给出了分段错误.我想知道更多关于此的解释?

c

-3
推荐指数
1
解决办法
5222
查看次数

标签 统计

c ×1

c++ ×1

memory-leaks ×1