1.8日总结之C++学习笔记-2
C++语言中使用new关键字分配内存,用完之后需进行释放。
int *newPointGet(int *p1)
{
int k1=55;
p1=new int; //申请一块动态内存(堆),p1指向它
*p1=k1;
return p1;
}
int *PointGet(int *p2)
{
int k2=66;
p2=&k2; //p2表示的栈内存中存放k2,此内存在函数执行后会被系统销毁
return p2;
}
int *i,*j;
i=newPointGet(i);
cout<<*i<<endl; //输出55
delete i;
cout<<*i<<endl; //输出未知数,**主动**销毁了p1的堆
j=PointGet(j);
cout<<*j<<endl; //输出66
cout<<*j<<endl; //输出0,执行其他语句(无论上一句有没有用到j)后**自动**销毁了存储p2的栈空间

浙公网安备 33010602011771号