[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;
}

执行结果:

[C++] new和delete运算符使用方法

 

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】免费获取数百本计算机经典书籍

    [C++] new和delete运算符使用方法

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/307269

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月16日 上午5:10
下一篇 2023年2月16日 上午5:10

相关推荐