введите * (символ *) 0; когда вы хотите, чтобы ваш код потерпел неудачу или сохранил его в выделенной переменной
(очевидно, он должен быть активирован / деактивирован некоторым #define, установленным makefile)
Идея состоит в том, чтобы точно контролировать, какой malloc вы хотите потерпеть неудачу. Я использовал предыдущий трюк, чтобы убедиться в поведении написанной мною программы, если когда-либо случится ошибка. Мне удалось проверить, что исключение было перехвачено и что не было утечки памяти с уже выделенным объектом.
Вы также можете добавить какой-то счетчик, чтобы ваш alloc возвращал 0 только через некоторое время и проверить, что ваш код корректно обрабатывает этот случай (и, например, правильно освобождает части того, что ваша программа решает уничтожить, чтобы справиться с нехваткой памяти). ).