C++内存泄露,野指针含义

 我来答
没有响应m2
2011-07-05 · TA获得超过8387个赞
知道大有可为答主
回答量:7579
采纳率:33%
帮助的人:3467万
展开全部
c++不用的对象一定要手动销毁 如果你不销毁这个对象就会一直存在占用内存 如果这个对象被创造了n次没被销毁的话 这个程序占用的内存就会越来越多 当占用100%以后还可能死机 这就是内存泄漏

野指针是指分配了内存但是却再也没有办法引用的指针,例如
{
new int; //分配了内存,但是你却没有办法使用它
}
或者
{
int m;
int *p=new int;
//接下来
int* p=&m;//这个时候头先的new int分配的内存指针变成“野指针”,因为你再也没有办法引用
//或者删除它
}
如果你的程序里面一直在new something,例如
void function ()
{
while(一些条件)
{
int a=new int;
//使用a,但是用完并未释放
}
}
就会有很多野指针产生,我们知道,new分配的内存是需要用delete来释放的,野指针的产生是浪费内存,如果多了会让你的电脑受不了,作为一个负责的程序员,在是用完用new分配的内存之后一定要使用delete 释放它,编译时不会出错(因为你没有语法错误),小数目野指针也不会运行出错
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
lixuejieyx
2011-07-06 · TA获得超过305个赞
知道答主
回答量:358
采纳率:100%
帮助的人:209万
展开全部
通俗的给你讲吧
如果分配的内存不用了,但又没释放他的话,就称内存泄露了,如果这块内存分给的是一个指针,这个指针就是野指针了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
童年的秋天
推荐于2016-06-15 · TA获得超过101个赞
知道小有建树答主
回答量:92
采纳率:0%
帮助的人:138万
展开全部
给个例子你就知道了
char* p1 = new char[10];
char*p2 = p1;
这时候 你释放了p1
delete[] p1;
p1=NULL
但这时候p2还是不为NULL,它指向了一个已经被你释放掉的内存,这就成了野指针了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式