8.16 我的程序总是崩溃, 显然在 malloc 内部的某个地方。 但是我看不出 哪里有问题。是 malloc() 有 bug 吗?

很不幸, malloc 的内部数据结构很容易被破坏, 而由此引发的问题会十分棘手。 最常见的问题来源是向 malloc 分配的区域写入比所分配的还多的数据; 一个常见 的 bug 是用 malloc(strlen(s)) 而不是 strlen(s) + 1。 其它的问题还包括使用 指向已经释放了的内存的指针, 释放未从 malloc 获得的内存, 或者两次释放同一 个指针, 或者试图重分配空指针, 参见问题 7.25

参见问题 7.23, 16.7 和 18.2

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)