内存销毁

#include
using namespace std;
int *sum(int a ,int b){
int *ps = NULL;
int c=a+b;
ps =&c;
return ps;
}
int main(){
int *pl= NULL;
int k1=3;
int k2=5;
pl = sum(k1,k2);
//pl从sum中获得一个临时指针,该指针是指针ps的临时复制品,操作完成后会消失,它所保留的地址交给了pl;
//sum执行完毕以后,该域使用的栈内存会被系统销毁甚至挪用。
cout<<“value of *pl:”<<pl<<endl;
cout<<"也许
pl还保留着i的值,但是它已经被程序认定为销毁"<<endl;
cout<<"*pl的值:"<<*pl<<endl;
pl=3;
//本程序通过pl继续使用和修改它,结果是系统再次销毁它。
for(int i=0;i<3:i++){
cout<<"修改被销毁的内存后
pl的值:"<<*pl<<endl;
}
return 0;
}
内存销毁实际上是系统判定该内存不是编程人员正常使用的空间,系统会将分配它分配给别的任务。所以对栈内存的指针一定要明白其何时销毁,不再重复利用它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值