堆和栈分配

wangkaixin-yy / 2023-08-23 / 原文

  • 在堆上的类对象或者任何变量,一旦声明将会一直存在,直到手动释放

    使用new关键字,使用delete释放;可以显示控制生存期

    数组使用delete删除时也要使用delete [ ] a;

    new关键字作用:1.在堆上分配内存  2.调用类的构造函数

    new还能指定分配内存的位置

class Entity{
private:
    std::string m_Name;
};
int main(){
    int* b=new int[50];
    Entity* e;
    e=new(b) Entity();//指定b作为其存储的地址
}
  • 在栈上存储的类对象或者任何变量,只要作用域运行结束就会释放。栈一般存储比较小的对象