很多时候,我们需要根据问题的实际规模来定义数组的大小,即确定实际需要使用的存储空间的大小,这个时候就要用到动态申请、释放存储空间的方法。
一般情况下,变量存储空间的分配和释放是由系统自动完成的,不需要我们的干预。
- 对于静态变量,编译时确定其空间,运行时分配,运行结束时自动释放空间。
- 对于动态变量,程序运行到其作用域的开始和结束处由系统动态分配、撤销其空间。
系统对自动分配内存的变量的访问方式有两种:
- 通过变量名直接访问
- 通过指针间接访问
在程序运行中动态申请、释放内存的变量,只能通过指针间接访问。在C++中,new 用于动态申请内存,delete 用于释放。注意:这些内存空间在程序结束前的适当时刻必须通过delete释放。
实例
#include <iostream>
using namespace std;
int main()
{
int n, *p, i;
cin >> n;
//申请一个一维数组空间,数据类型是i