В настоящее время я (не спрашиваю, почему: P) реализую свои собственные версии malloc () и free (), и намеренно поместил assert (0) в первую строку free () для текущих целей отладки.
Программа драйвера проверяет случайную последовательность этих malloc () и free (), чтобы проверить правильность моих реализаций.
Однако, когда я запускаю драйвер, оболочка печатает, что«Утверждение« 0 »не удалось», продолжает работать немного дольше, , а затем выводит «Aborted».На самом деле, похоже, что он может даже вызывать malloc () несколько раз между сообщением о сбое подтверждения и, наконец, сообщением о том, что программа была прервана.Я уверен в этом из-за некоторых операторов printf, которые я поместил в код для распечатки определенных переменных в целях отладки.
Я не прошу никакой помощи по реализации malloc () и бесплатно ().Хотелось бы просто знать, что это значит, когда кажется, что программа продолжает работать в течение короткого времени (даже, возможно, вызывая другие пользовательские функции), даже после того, как было подтверждено, что утверждение не выполнено.