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;
    
  • 相关阅读:
    在web项目中使用配置文件
    javaFx教程 scene builder 加载第三方jar包
    getResource的两种用法
    tomcat部署工具
    withMisfireHandlingInstruction
    quartz教程三
    quartz教程二
    LocalDateTime与DateTimeFormatter
    quartz demo
    在小程序中点击后跳转到另一个小程序
  • 原文地址:https://www.cnblogs.com/cj5785/p/10664736.html
Copyright © 2011-2022 走看看