使用new
运算符初始化
- 为内置的标量类型(int、double等)分配存储空间并初始化,可在后面加上初始值,用括号括起来。
int *pi=new int(6); *pi = 6
Class_Name *Class_ptr= new Class_Name(value);//需要有相应的构造函数
若初始化常规结构或数组,需要大括号的列表初始化(C++11)
struct where {double x, double y,};
where *one = new where{10,20};
int *a = new int[4] {1,2,3,4};
也可将列表初始化用于单值变量
int *a = new int {1};
new失败
当new
失败时,返回空指针,在C++11中会引发异常std::bad_alloc
。