栈和堆

数据先进后出

堆:数据先进先出

栈:程序自动向操作系统申请分配以及回收。用在作用域中,作用域结束栈中的数据自动释放

堆:程序员向操作系统申请一块内存,用在作用域内,作用域结束不会自动释放,要手动delete掉(释放),否则会导致内存泄漏报错。

eg

{

  int  i=10;//变量存储在栈区中

   const  int i2=20;

  nt i3=30;

  cout<<&i<<" "<<&i2<<" "<<&i3<<endl;

}

eg:堆

{

  C 中:malloc:p1=(char *)malloc(10);     释放malloc用free

    C++中:new: p2=new char[20];          释放new用delete

注:p1 p2本身就在栈中

 

}

posted @ 2018-08-04 21:49  猎人7号  阅读(39)  评论(0)    收藏  举报