zoukankan      html  css  js  c++  java
  • 直接管理内存——new和delete

    一、运算符new

    1. 使用new动态分配对象

    • 在自由空间分配的内存是无名的,故new无法为其分配的对象命名,而是返回一个指向该对象的指针
    • int *pi = new int;  //pi指向一个动态分配的、未初始化的无名对象
    • 表达式“new int”:①在自由空间构造一个 int 型对象;②返回指向该对象的指针

    2. 使用new动态分配并初始化对象

    • int *pi1 = new int;  //默认初始化,*pi1的值未定义
    • int *pi2 = new int();  //对动态分配的对象进行值初始化,*pi2的值为0
    • int *pi3 = new int(24)  //直接初始化,pi3指向的对象的值为24
    • int *pi4 = new int{24}  //同上

      注:对于定义了自己的构造函数的类类型来说,值初始化和默认初始化的效果是一样的;但对于内置类型来说,值初始化的内置类型对象有着良好定义的值,而默认初始化的对象的值是未定义的。

    二、运算符delete

    1. 传递给delete的指针必须指向动态分配的内存,或者是一个空指针

    2. const对象是可以销毁的

    3. 空悬指针:当delete一个指针后,该指针就变为空悬指针了

  • 相关阅读:
    让Oracle高效并行执行的13个必备知识点
    oracle使用并行踩过的坑
    oracle parellel 案例
    并行查询 最基本
    ORACLE parallel 3个层面的影响
    Mac下百度网盘破解
    vscode整个项目的查找替换快捷键
    mysql---group_concat
    mysql-group by 与 where
    npm安装指定版本包
  • 原文地址:https://www.cnblogs.com/xzxl/p/7738152.html
Copyright © 2011-2022 走看看