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;
    }
  • 相关阅读:
    iOS-25个小技巧
    iOS-UITableView的使用
    iOS-UIPickerView
    iOS-UIStoryboard和UIResponder
    javascript弹出层-DEMO001
    jQuery源码分析-02正则表达式-RegExp-常用正则表达式
    JSON动态生成树
    回顾码农历程总结2013 期待2014
    大数据量分页存储过程效率测试附代码
    关于对象序列化json 说说
  • 原文地址:https://www.cnblogs.com/lialong1st/p/12006398.html
Copyright © 2011-2022 走看看