1、动态内存分配
- 大部分代码都是在编译期间给数据分配内存空间,但是使用std::vector<>容器时是例外,他会在运行期间动态分配自己需要的内存来保存元素.
2、栈空间
- 局部变量在执行其定义时创建,在内存区域给局部变量分配的空间称为栈.
- 在定义局部变量的块尾,会释放栈上的变量所占据的内存,以供重复使用.
- 传递给函数的参数和地址就存储在栈上,函数执行完毕后,就返回该地址.
3、自由存储区
- 操作系统和其他运行程序未占用的内存称为自由存储区.
- 使用new运算符,返回分配空间的地址
- 和他对应的运算法是delete,他可以释放以前用new分配的内存.
- 在使用new为变量分配内存空间时,就是在自由存储区创建该变量.在变量占用的内存没有用运算符delete释放前,该变量将一直存在.
double* pvalue {};
pvalue = new double;
delete pvalue;
4、数组的动态内存分配
double* data = new double[100];
delete[] data;