分配空间
- new 类型名X(初值列表)
- 功能:申请用于存放X类型对象的内存空间,并依初值列表赋以初值。
- 结果值:
- 成功:X类型的指针,指向新分配的内存
- 失败:0(NULL)
int *p1 = new int;
new int:表示从内存中动态分配一块int类型的空间,获得这块空间的地址。
new出来的这块空间也是就得到这块空间的地址,所以它必须赋值给一个指针变量。
int *p2 = new int(10);
直接给这块空间赋上初值,加个括号,括号里写10。
表示new了一块int类型的空间,这个空间存储了数字10。
把这个新的空间赋值给指针变量p2,也就是p2指针变量指向存储了10的这个新分配的空间,p2存储的是新分配空间的地址。指针p2示意图如下图所示。
关于指针的基本概念可以查看此篇:[C/C++]C/C++中 *和&、指针和地址 的基本概念
释放空间
- delete 指针p
- 功能:释放指针P所指向的内存。
p必须是new操作的返回值。
- 功能:释放指针P所指向的内存。
delete p1;
总结
- new分配一块空间,获得这块空间的基地址;
- new获得基地址,所以它必须赋值给一个指针变量;
- delete释放空间。