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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM