//内存泄露,分配在堆区的动态内存不会自己主动销毁,需要用delete,如果不回收,系统就会浪费很多的资源。
#include
using namespace std;
int main(){
float *pf = NULL;
pf = new float;
*pf = 4.321f;
float f2= 5.321f;
cout<<“pf指向的地址:”<<pf<<endl;
cout<<"*pf的值:"<<*pf<<endl;
pf=&f2;//动态分配的内存开始由pf指向,但是当pf指向改变以后,这块堆区的内存就无法回收了(因为找不到了)。这就是内存泄漏
cout <<“pf指向了f2的地址:”<<pf<<endl;
if(*pf>5){
cout<<"*Pf的值:"<<*pf<<endl;
}
return 0;
}
一般回收内存的方法:
delete 指针变量名;
将指针指向NULL;//将指针变量置空,防止使用已销毁的内存;和上一条语句不可颠倒,否则将造成内存泄漏。
内存泄漏。。。
最新推荐文章于 2021-06-02 23:57:59 发布