zoukankan      html  css  js  c++  java
  • 高效C++:定制new和delete

      内存的申请和释放,C++从语言级别提供了new和delete关键字,因此需要了解和熟悉其中的过程。

    了解new-handler的行为

    • set_new_handler可以指定一个函数,当申请内存失败时调用,如果调用指定的函数后,内存还是不够,就会循环调用

    • 使用set_new_handler指定函数一定要小心

    了解new和delete的合理替换时机

    • 定制new和delete是有必要的

    编写new和delete时需要固守常规

    • operator new应该内含一个无穷循环,并在循环中尝试分配内存,如果无法满足就需要调用new-handler(里面的操作可能释放内存),且有能力处理0字节的申请

    • operator delete的入参为NULL时,不做任何处理

    提供了placement new就需要提供placement delete

    • 任何情况下new和delete都需要成对出现

    不要轻易忽略编译器的警告

    • 记住一句话:现在忽略的告警,就是你将来通宵的伏笔

    让自己熟悉标准程序库

    • 直接撸源码,你将受益无穷

    让自己熟悉开源代码

    • 多阅读开源代码,只有好处没有坏处

  • 相关阅读:
    vnode之update 还是没太懂
    vnodec创建之标签
    1054 求平均值
    1053 住房空置率
    1052 卖个萌
    1051 复数乘法
    1050 螺旋矩阵
    1049 数列的片段和
    1048 数字加密
    1047 编程团体赛
  • 原文地址:https://www.cnblogs.com/chusiyong/p/11453345.html
Copyright © 2011-2022 走看看