zoukankan      html  css  js  c++  java
  • [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;
    }
  • 相关阅读:
    NHibernate 过滤器(第十五篇)
    NHibernate 存储过程 第十四篇
    NHibernate 操作视图 第十三篇
    NHibernate Linq查询 扩展增强 (第九篇)
    NHibernate 之数据操作 (第五篇)
    NHibernate之一级缓存(第十篇)
    jQueryEasyUI
    linux的systemctl 命令用法 转
    linux dig命令 转
    OPTAUTH 两步验证详解
  • 原文地址:https://www.cnblogs.com/lialong1st/p/12006398.html
Copyright © 2011-2022 走看看