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; }
原文链接: https://www.cnblogs.com/lialong1st/p/12006398.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/307269
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!