动态内存分配
- 动态内存分配:即由程序员手动的进行内存空间的分配、内存空间的释放的内存管理操作
- C++代码中,变量、数组等对象的创建,是由C++自动分配内存的,称之为(自动)静态内存分配
- (自动)静态内存管理,不会进行内存空间的自动清理。(无垃圾回收机制)
- 需要手动的管理内存,即手动分配,用完清理
new运算符
- 用于申请并分配内存空间并提供指向该空间的指针(内存地址)
- 基本语法:
- new type 申请普通变量空间
- new type[] 申请数组空间
delete运算符
- 用于释放内存,仅可用于new运算符申请的内存区域
- 基本语法:
- delete 指针 删除普通变量空间
- delete[] 指针 删除数组空间
- 建议:写完new后,立刻写delete,然后再写业务逻辑代码(避免忘记)
int *pt = new int;*pt = 10;cout << "申请内存空间存放:" << *pt << endl;delete pt;cout << "pt内存空间已释放" << endl;int *pt2 = new int[3];pt2[0] = 1; // 指针也可以用下标, 等同于*(p+0)*(pt2 + 1) = 2; // 等同于 pt[1]cout << "*pt2申请内存空间大小:" << sizeof(pt2) << endl;cout << *pt2 << endl;cout << pt2[1] << endl;delete[] pt2; // 释放内存空间cout << "pt2内存空间已释放" << endl;