Кто обрабатывает C++ "новый" сбой выделения памяти?

В C люди часто проверяют нулевые указатели после использования malloc. Однако в C++ мы будем использовать "новый". Я провел некоторый поиск и объяснил разницу между malloc и new ниже: https://isocpp.org/wiki/faq/freestore-mgmt

Цитировать по ссылке выше:

malloc () сообщает об исчерпании памяти, возвращая 0. новые сообщения об ошибках распределения и инициализации, генерируя исключения (bad_alloc).

Но как ОС (Linux или Windows) реагирует на это исключение bad_alloc?

1 ответ

Решение

Они не ОС не нужно "реагировать" ни на что. Ваша программа может захотеть отреагировать на условие, или она может оставить исключение необработанным и завершить работу. В любом случае, память не была выделена, и ОС больше не нужно, если она вообще заботилась (или даже знала об этом)!

Другие вопросы по тегам