我目前(不要問爲什麼:P)實現我自己的版本的malloc()和free(),並且爲了當前的調試目的故意在free()的第一行放置一個斷言(0)。C語言:在「assert()」失敗後,程序如何繼續運行一點點?
驅動程序正在測試這些malloc()和free()的隨機序列以測試我的實現的正確性。
當我運行驅動程序,但是,外殼打印出的是「斷言‘0’失敗」,一直運行了很長一點,然後打印「胎死腹中」。實際上,它似乎可以在報告斷言失敗並最終報告程序已中止之間多次調用malloc()。我確信這是因爲我已經在代碼中放置了某些printf語句來打印出某些用於調試目的的變量。
我不要求任何幫助在所有有關實現的malloc()和free()。只要知道程序繼續運行很短的時間(即使可能調用其他用戶定義的函數),即使斷言已報告失敗後,也意味着什麼。
我很確定驅動程序不是' t多線程...... –
驅動程序?你能澄清你的平臺嗎? –