我目前(不要问为什么:P)实现我自己的版本的malloc()和free(),并且为了当前的调试目的故意在free()的第一行放置一个断言(0)。C语言:在“assert()”失败后,程序如何继续运行一点点?
驱动程序正在测试这些malloc()和free()的随机序列以测试我的实现的正确性。
当我运行驱动程序,但是,外壳打印出的是“断言‘0’失败”,一直运行了很长一点,然后打印“胎死腹中”。实际上,它似乎可以在报告断言失败并最终报告程序已中止之间多次调用malloc()。我确信这是因为我已经在代码中放置了某些printf语句来打印出某些用于调试目的的变量。
我不要求任何帮助在所有有关实现的malloc()和free()。只要知道程序继续运行很短的时间(即使可能调用其他用户定义的函数),即使断言已报告失败后,也意味着什么。
我很确定驱动程序不是' t多线程...... –
驱动程序?你能澄清你的平台吗? –