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

 

posted @ 2019-12-08 17:32  LeeAaron  阅读(1110)  评论(0编辑  收藏  举报