[C++] new和delete运算符使用方法
new 和 delete 是C++语言中的两个运算符,配套使用。
new:用于分配内存,与C语言中的 malloc 相同,分配在堆内存
delete:用于释放内存,与C语言中的 free 相同,释放堆内存
new 使用格式:
// 分配时不初始化 类型 *p = new 类型; // 分配时初始化 类型 *p = new 类型(初始值); // 分配数组不初始化 类型 *p = new 类型[长度]; // 分配数组时初始化 类型 *p = new 类型[长度]{值1, 值2, ...};
举例:
#include <iostream> using namespace std; int main(void) { // 分配时不初始化 int *p0 = new int; *p0 = 10; cout << *p0 << endl; // 分配时初始化 char *p1 = new char('A'); cout << *p1 << endl; // 分配数组不初始化 int *p2 = new int[2]; *p2 = 1; *(p2 + 1) = 2; cout << *p2 << endl; cout << *(p2 + 1) << endl; // 分配数组时初始化 char *p3 = new char[2]{ 'B', 'C' }; for (int i = 0; i < 2; i++) { cout << p3[i] << endl; } return 0; }
执行结果:
delete 使用格式:
// 释放变量地址空间 delete 变量指针 // 释放数组 delete []数组指针
举例:
#include <iostream> using namespace std; int main(void) { int *p0 = new int(10); cout << *p0 << endl; // 释放变量p0 delete p0; char *p1 = new char[2]{ 'B', 'C' }; for (int i = 0; i < 2; i++) cout << p1[i] << endl; // 释放数组p1 delete[]p1; return 0; }