В C люди часто проверяют нулевые указатели после использования malloc. Однако в C++ мы будем использовать «новый». Я сделал некоторый поиск и одно объяснения разницы между таНосом и новым ниже: https://isocpp.org/wiki/faq/freestore-mgmt#new-malloc-diffКто обрабатывает сбой «нового» выделения памяти C++?
Цитата из ссылки выше:
таНоса() сообщает исчерпание памяти, возвращая 0. нового распределения отчетов и ошибки инициализации путем исключения исключений (bad_alloc).
Но как ОС (Linux или Windows) реагирует на это исключение bad_alloc?
ОС не реагирует на эти вещи. Это * причина * этих вещей. ОС отклоняет попытку выделения памяти. Найдите 'VirtualAlloc',' HeapAlloc', 'mmap' и' sbrk'. –
@ ZanLynx: Почему вы отвечаете на _comment_? Используйте раздел ответа. –
@LightnessRacesinOrbit: Потому что уже есть хороший ответ, и я просто хотел ответить на одну часть вопроса. –