1.动态数组的定义
int *pi = new int[10];
如果数组元素具有类类型,则使用该类的默认构造函数初始化元素
如果是内置,则无初始化
可以使用()进行强制初始化
int *pi = new int[10]();
2.const对象的动态数组
const int *pi = new const in[10](); //必须使用()初始化
允许类类型,但必须提供默认构造函数
const string * st = new const string[10];
3.允许动态分配空数组
- #include <iostream>
- #include <string>
- using namespace std;
- int get_size(void);
- int main()
- {
- //int *pi = new int[10]();
- //string *spi = new string[10];
- //int *pi = new const int[10]();
- size_t n = get_size();
- int *pi = new int[n]; //允许大小为0,返回非0指针,但无法解引用
- for(int *q=pi;q!=pi+n;q++)
- {
- cout << *q;
- }
- }
- int get_size()
- {
- return 0;
- }
4.动态空间的释放
delete[] 表达式: delete [] pia; //将内存返回自由存储区