C++内存泄露,野指针含义
展开全部
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 释放它,编译时不会出错(因为你没有语法错误),小数目野指针也不会运行出错
野指针是指分配了内存但是却再也没有办法引用的指针,例如
{
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 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
通俗的给你讲吧
如果分配的内存不用了,但又没释放他的话,就称内存泄露了,如果这块内存分给的是一个指针,这个指针就是野指针了
如果分配的内存不用了,但又没释放他的话,就称内存泄露了,如果这块内存分给的是一个指针,这个指针就是野指针了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给个例子你就知道了
char* p1 = new char[10];
char*p2 = p1;
这时候 你释放了p1
delete[] p1;
p1=NULL
但这时候p2还是不为NULL,它指向了一个已经被你释放掉的内存,这就成了野指针了
char* p1 = new char[10];
char*p2 = p1;
这时候 你释放了p1
delete[] p1;
p1=NULL
但这时候p2还是不为NULL,它指向了一个已经被你释放掉的内存,这就成了野指针了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询