栈和堆
栈:数据先进后出
堆:数据先进先出
栈:程序自动向操作系统申请分配以及回收。用在作用域中,作用域结束栈中的数据自动释放。
堆:程序员向操作系统申请一块内存,用在作用域内,作用域结束不会自动释放,要手动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本身就在栈中
}

浙公网安备 33010602011771号