C++学习笔记之动态内存

C++ 程序中的内存分为两个部分:

  • 栈:在函数内部声明的所有变量都将占用栈内存。
  • 堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存。
  • 栈区:由程序管理,存放局部变量,由程序自动释放掉
  • 堆区:由我们自己管理,我们自己创建自己释放,当程序结束时程序会接手释放掉空间。

动态内存那显然如字面意思内存的分配是动态的

说白了就是有些变量需要的内存并不是程序编写就能确定,需要运行时候才能知道

比如

int i;
cin >>i;
int *p =new int[i];
//这里*p指向的内存大小随着用户输入的数动态变化

静态内存说白了就是不可变了在编译器就决定了内存大小

比如 常量,常变量(const),静态变量,全局变量

new 和 delete 运算符

new 与 malloc() 函数相比,其主要的优点是,new 不只是分配了内存,它还创建了对象。

int *i=NULL;
i=new int;//为变量请求内存
delete i;释放内存

你可能感兴趣的:(c++学习之路,c++,学习,笔记)