zoukankan      html  css  js  c++  java
  • C++学习笔记-new与delete

    C++新增了new和delete关键字,用来开辟内存,对应的就是C语言的malloc和free

    对比new/delete和malloc/free

    malloc和free是库函数,以字节为单位申请堆内存
    new和delete是关键字,以类型为单位申请堆内存
    malloc和free单纯的对内存进行申请与释放
    对于基本类型new关键字会对内存进行初始化
    对于类类型new和delete还负责构造函数和析构函数的调用
    对于基础类型和数组类型,可以混搭,主要是因为实现原理

    new/delete用法

    分配基础类型,分配数组类型,分配对象

    分配基础类型

    malloc分配,free释放

    int *p = (int *)malloc(sizeof(int));
    free(p);
    

    new分配,delete释放

    int *p1 = new int;//相当于声明
    *p1 = 10;
    delete p1;
    
    int *p2 = new int(100);//定义并初始化
    delete(p2);
    

    分配数组类型

    malloc分配,free释放

    int *p = (int *)malloc(10*sizeof(int));  //int a[10];
    p[0] = 1;
    free(p);
    

    new分配,delete释放

    int *p = new int[10];
    p[0] = 1;
    delete []p;
    

    分配对象

    malloc无法分配对象

    Test *p = new Test(1, 2);
    delete p;
    
  • 相关阅读:
    JavaScript基础初始时期分支(018)
    JavaScript基础尽量少使用全局变量(001)
    linux源码安装nodejs
    js导出excel
    http 状态码
    网站导航固定头部
    gulp编译less简单demo
    mysql设置连接等待时间(wait_timeout)
    mysql视图
    网站用户行为数据挖掘
  • 原文地址:https://www.cnblogs.com/cj5785/p/10664736.html
Copyright © 2011-2022 走看看