C++动态内存
同C,C++中也是有堆和栈的概念。栈是函数内部声明的所有变量都所占用空间,堆是程序中未使用的内存,在程序运行期间可用于动态分配。
同样也有alloc()分配内存,新增了new和delete运算符来分配释放内存
new和delete
new关键字用来分配一种类型的内存:new type;
,并返回一个该类型的指针,new type->type*
。如:
int *p;
p=new int;
用完之后可以用delete关键字释放内存
delete p;
除此之外,new还可以在给对象分配内存空间的同时创建对象。多用来创建对象数组,如:
#include<iostream>
using namespace std;
class student{
public:
student(){
cout<<"创建对象"<<endl;
}
~student(){
cout<<"销毁对象"<<endl;
}
};
int main(){
student* stpt=new student[3];
delete [] stpt;
}