我已经为新运算符分配了一个指针,并将内存的所有权分配给了一个新的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) 我有一个声明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)
上面的代码给出了分段错误.我想知道更多关于此的解释?