zoukankan      html  css  js  c++  java
  • new 和 delete

    new 和 delete

      众所周知,C中的malloc和free是用来申请和释放内存的,相应的C++中也有对应的申请和释放内存的操作,即是new和delete,但是C++的new和delete比C中的malloc和free要好得多,

      C++把创建一个对象所需的所有动作都结合在一个称为new的运算符里,当使用new创建一个对象时,它就在堆里为对象分配内存并为这块内存调用构造函数进行初始化,默认的new还

      进行检查以确信在传递地址给构造函数之前分配内存是成功的,所以不必显示地确定调用是否成功, Mytype *fp = new Mytype;只是一个简单的表达式,它带有内置的长度计算,类型

      转换,和安全检查

      delete只用于删除由new创建的对象,如果是malloc或其他方式创建一个对象,然后由delete删除它,这个动作行为是未定义的,因为大多数默认的new和delete实现机制都使用了malloc

      和free,所以很可能会没有调用析构函数就释放了内存,如果正在删除的对象指针是0(即是空,NULL),则不会发生任何事情,因此建议在删除指针后把指针赋为空以免二次删除,对一个

      对象二次删除可能会产生某些问题 

  • 相关阅读:
    elasticsearch的安装
    default_scope and unscoped
    RSpec + Spork + Autotest 给Rails 3添加快速自动化测试
    ubuntu收过带个winmail.dat的邮件
    网站链接
    github
    js笔记
    mba首页js
    mba精锐视角js
    mongodb常用命令
  • 原文地址:https://www.cnblogs.com/qianqiannian/p/6596526.html
Copyright © 2011-2022 走看看