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;

}