C++ 动态分配内存 内存泄漏问题 new
intmain(){int*P=newint;intA=0;P=&A;return0;}这段代码出现内存泄漏了由于指针p之前有指向一片内存,所以当被A的地址赋值后,p原来...
int main()
{
int *P=new int;
int A=0;
P=&A;
return 0;
}
这段代码出现内存泄漏了
由于指针p之前有指向一片内存,所以当被A的地址赋值后,p原来指向的内存就泄露了,无法使用也无法删除。那么,我想问,如果我们加一个指针Q,并在一开始就指定指向 P一开始指向的内存,如下,可以解决上述内存泄露问题吗?
int main()
{
int *P=new int;
int *Q = P;
int A=0;
P=&A;
delete Q;
return 0;
} 展开
{
int *P=new int;
int A=0;
P=&A;
return 0;
}
这段代码出现内存泄漏了
由于指针p之前有指向一片内存,所以当被A的地址赋值后,p原来指向的内存就泄露了,无法使用也无法删除。那么,我想问,如果我们加一个指针Q,并在一开始就指定指向 P一开始指向的内存,如下,可以解决上述内存泄露问题吗?
int main()
{
int *P=new int;
int *Q = P;
int A=0;
P=&A;
delete Q;
return 0;
} 展开
2个回答
展开全部
可以解决,因为申请的指针Q已经指向了p申请的这个int实例,delete的话就是把这个动态分配的空间给释放掉,所以这种方式是可以解决这里的内存泄露问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询