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的栈空间
posted @ 2025-01-08 20:59  小智001  阅读(19)  评论(0)    收藏  举报