Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vechestva
-28 / 0 / 0
Регистрация: 14.09.2012
Сообщений: 47
#1

Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc? - C++

17.11.2012, 08:51. Просмотров 336. Ответов 4
Метки нет (Все метки)

По УМОЛЧАНИЮ при динамическом выделении, если не хватает памяти, возвращается NULL или bad_alloc?
Так и не нашел конкретного ответа. Английский плохо понимаю, чтобы детально шариться в стандарте
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2012, 08:51     Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc?
Посмотрите здесь:

C++ Ошибка при выделении памяти под двумерный массив
C++ Ошибка при динамическом выделении памяти
C++ Куча была повреждена. При выделении памяти
Ошибка при выделении памяти C++
Ошибка при выделении памяти C++
C++ Ошибка при выделении памяти
Создание исключения при динамическом выделении памяти C++
C++ Ошибка terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc выделение памяти
Cin.getline() не работает при динамическом выделении памяти C++
Вылет при выделении памяти под вектор C++
C++ Ошибка при выделении памяти с помощью malloc
Ошибка при динамическом выделении памяти C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
17.11.2012, 08:58     Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc? #2
ЕМНИП, возвращается исключение. Стандарта под рукой нету, буду дома, уточню.

UPD: да, выбрасывается исключение. 1.8.4.1p4:

Returns a pointer to the allocated storage if the attempt is successful. Otherwise, if the last argument to
set_new_handler() was a null pointer, throw bad_alloc.
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 1
17.11.2012, 09:45     Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc? #3
В древних стандартах возвращался NULL, начиная кааца с C++98 выбрасывают bad_alloc. На любом более-менее современном компиляторе (выпущенном за последний где-нибудь десяток лет) можно смело расссчитывать на выброс исключений.
Байт
Эксперт C
 Аватар для Байт
15059 / 9461 / 1385
Регистрация: 24.12.2010
Сообщений: 17,513
17.11.2012, 09:57     Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc? #4
Nick Alte, Значит ли это, что в конструкции
C
1
2
3
4
 p = malloc(...);
if (p==NULL) {
  // Никогда не сработает
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
17.11.2012, 11:19     Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc? #5
Байт, имелось в виду выделение памяти с помощью оператора new. Сишные функции исключений не выбрасывают.
Yandex
Объявления
17.11.2012, 11:19     Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc?
Ответ Создать тему
Опции темы

Текущее время: 20:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru