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)