• C专家编程(3)


    段(P117-119)

    在一个可执行文件中,主要有三个段:文本段、数据段和bss段。利用size命令,可以查看这三个段的大小。

    编程挑战

    size text data bss total
    1 16696 1566 600 8 2174
    2 16720 1566 600 4032 6198
    3 20736 1566 4616 8 6190
    4.1 20784 1755 4624 8 6387
    4.2 20832 1876 4632 8 6516
    5 23440 1876 4632 8 6516

    分析结果可知:

    • 数据段保存在目标文件中。(比较2和3的结果可得)
    • BSS段不保存在目标文件中。(比较1和2的结果可得)
    • a.out文件的大小受调试状态下编译的影响,但段不受影响。
      • 文本段易受优化措施影响。

    段错误(P159-163)

    可能导致段错误的常见编程错误是:

    1. 坏指针值错误:在指针赋值前就用它来引用内存/向库函数传递一个坏指针/释放指针后再访问它的内容。
    2. 改写(overwrite)错误:越过数组边界/在动态分配的内存两端写入数据/改写一些堆管理数据结构。
    3. 指针释放引起的错误:释放同一个内存块两次/释放未曾使用malloc分配的内存/释放仍在使用的内存/释放无效指针。
  • 相关阅读:
    php详解和优化
    接口
    抽象类
    对象转型
    面向对象2
    Super关键字
    Object类介绍
    有效处理java异常的三个原则
    this关键字
    equals方法
  • 原文地址:https://www.cnblogs.com/maxiaowei0216/p/14247500.html
Copyright © 2020-2023  润新知