zoukankan      html  css  js  c++  java
  • YDD的铁皮锅——C/C++内存概念

    对于C++这门语言来说内存应该是透明的,由你自己完全掌控。不像Java语言那样有垃圾回收机制,因此一个管理内存的规范是十分重要的。

    一个程序如果需要长时间的运行,那它的内存管理就十分关键,毕竟你的程序在运行期间不断的泄漏内存,操作系统可分配的内存就会不断减小,

    从而导致主机死机,那是非常严重的。还有就是像客户端这种程序内存要求不是太严格的,在进程里你的请求的内存但进程被销毁时会由操作系统回收。

    但是对于那种处理网络信息报文,解析数据的程序一点点的泄漏会随着程序的运行不断放大,从而程序崩溃。

    1、在函数中能用局部变量来处理就尽量使用局部变量,局部变量处在堆栈中会自己回收内存,

      对于要new出来的变量尽量写成类成员来管理,然后在析构里进行delete。

    2、new出来的对象尽量不要使用返回指针的get方法,向外抛出去使用,这会导致各种问题,野指针、空指针以及忘记delete等等。。

    3、如果new出的对象实在需要在类与类之间使用,就用std的unique_ptr,shared_ptr智能指针保护一下。防止内存泄漏。

    最后一句话如果程序有内存泄漏,那一定是程序猿在编代码时的头脑不清晰或者逻辑思路没搞清楚导致的,是可以避免的。所以代码敲不动了,

    就及时抽个烟,刷刷视频冷静下吧【滑稽.png】

  • 相关阅读:
    74.Interesting Sequence(有趣的数列)(拓扑排序)
    CODEVS 1746 贪吃的九头龙
    NYOJ 110 剑客决斗
    CODEVS 2451 互不侵犯
    洛谷 P1896 互不侵犯King
    洛谷 P1066 2^k进制数
    洛谷 P1656 炸铁路
    洛谷 P1830 轰炸Ⅲ
    CODEVS 1051 接龙游戏
    POJ 3461 Oulipo
  • 原文地址:https://www.cnblogs.com/yddsblog/p/11689382.html
Copyright © 2011-2022 走看看