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)