目录
1.利用new创建内存
new是在堆区申请一块连续的内存空间,如果申请成功,则返回内存指针,如果申请失败,则返NULL。
new申请内存空间的过程,通常称为new一个对象。与 malloc()相比:
- new是关键字不需要引用头文件(malloc需要引用stdlib.h或者malloc.h)
- new创建动态对象时会自动调用对象的构造函数
- new能够根据初始化列表中的值进行初始化.
1.1 创建单个变量(对象)
1.1.1格式
- 数据类型 *指针变量=new 数据类型; //默认值为随机值
- 数据类型 *指针变量=new 数据类型(初始值);
- 数据类型 *指针变量=new 数据类型{初始值};
1.1.2代码
int main()
{
int a;
int* p1 = new int;//动态创建一个int,没有初始化,随机值(0xcdcdcdcd)
int* p2 = &a;//随机值,0xcccccccc
cout << *p1 << endl;
cout << *p2 << endl;
int* p2 = new int(10);//动态创建一个int,并初始化为10
cout << *p2 << endl;
int* p3 = new int();//初始化为0
cout << *p3 << endl;
int* p4 = new int{ 200 };//动态创建一个整型,初始化为200,C++11新增加的
cout << *p4 << endl;
return 0;
}
int main()
{
//动态创建一个double
double* p1 = new double;
//动态创建一个strin