动态数组
定义
- 在编译时, 不必知道动态分配的数组的长度, 通常是运行时才知道长度
- 动态分配的数组一直存在于 堆 (heap)中,直到程序显示的释放它
- new 获得
- delete 删除
举例说明
int *p = new int [10];
动态分配了一个含有10个int类型的数组- 动态数组没有名字, 只能通过指针访问
- 动态数组只需要
-
- 指定类型
- 数组长度. 可以为任意的复杂的表达式
- 返回指向该数组的第一个元素的指针
new – 初始化
动态分配数组,其元素只能分配为 元素类型的默认值,不能使用初始化列表
- 类类型: 使用对应的构造函数初始化
- 内置内型:
int * p = new int[10];
不初始化int * p = new int[10]();
元素初始化为0
delete – 释放
delete [] pia;
回pia指针所指向的数组, 内存还给heap