3.14 程序運行正確, 但退出時卻 ``core dump''了,怎麼回事?

問題程序:
    struct list {
        char *item;
        struct list *next;
    }

	/* 這裡是 main 程序 */

    main(argc, argv)
    { ... }

缺少的一個分號使 main() 被定義為返回一個結構。由於中間 的註釋行, 這個聯繫不容易看出來。因為一般上, 返回結構的函數在 實現時, 會加入一個隱含的返回指針, 這個產生的 main() 函數 代碼試圖接受三個參數, 而實際上只有兩個傳入 (這裡, 由 C 的啟動代碼 傳入)。參見問題 10.8 和 16.4

參考資料: [CT&P, Sec. 2.3 pp. 21-2]。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)