C++ new运算符

new 分配的数据类型:内置数据类型、自定义数据类型。

若果不成功,则 new 将回来零或引发那个;编写自定义格外处理例程并调用 _set_new_handler运转库函数(以你的函数名称作为该参数),可改此默认行为。

new 也 C++
类对象分配内存时,将当分配内存后调用对象的构造函数。仅当类具有默认构造函数时,new 运算符才会创建对象的数组。

分配多维数组时,除第一单维度之外的备维度必须是算结果吧正的常量表达式;最左边的数组维度可以是测算结果也正值的其他表达式。new 运算符分配数组时,第一只维度可也零
,此时new 运算符返回一个唯一指针。

事例:分配一个二维数组,然后释放,数组的高低也 zhm x 10

    1、char (*p)[10] = new char[zhm][10]; delete[] p;  

    2、int m=2,n=3; int **p = new int*[m]; for(int
i=0;i<m;i++)  p[i] = new int[n];  … for(int i=0;i<m;i++)
delete[] p[i]; delete[] p;

    3、如果 2 这样写:int **p ; p =new int* [m] ;  for(int
i=0;i<m;i++)  p[i] = new int[n]; 万万不可写成: (*p) =new int
[m] ;

 变量不能够包含 const、volatile、类声明或枚举声明。 非法:volatile char
* p = new volatile char[10];

new 运算符不见面分配引用类型,因为这些项目不是目标。

new 运算符无法用于分配函数,但唯独用来分配指于函数的指针。 下面的示例 为
返回整数的函数 分配一个富含 7 个指针的多次组,然后放。

    int (**p)() = new (  int (*[7])()   ); delete *p;