• 内存操作经典问题2


    常见内存错误

    • 结构体成员指针未初始化
    • 结构体成员指针未分配足够的内存
    • 内存分配成功,但并未初始化
    • 内存操作越界

    内存操作的交通规则

    动态内存申请之后,应该立即检查指针值是否为NULL , 防止使用NULL指针。

    free指针之后必须立即赋值为NULL。

    任何与内存操作相关的函数都必须带长度信息。

    malloc操作和free操作必须匹配, 防止内存泄露和多次释放

    小结

    • 内存错误的本质源于指针保存的地址为非法值
      • 指针变量未初始化,保存随机值
      • 指针运算导致内存越界
    • 内存泄漏源于malloc和free不匹配
      • 当malloc次数多于free时,产生内存泄漏
      • 当malloc次数少于free时,程序可能崩溃
  • 相关阅读:
    HashMap的理解
    红黑树
    No constructor found matching
    会话 控制终端 setsid
    信息表示和处理 from computer system chapter 2
    tcp keepalive
    TCP 四步挥手
    CS 课程
    close vs shutdown socket
    Linux time总结
  • 原文地址:https://www.cnblogs.com/yanyun888/p/9213284.html
Copyright © 2020-2023  润新知