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

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

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

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

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

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

Ошибка terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc выделение памяти - C++
Уважаемые форумчане! Работаю над программой обработки WAV файлов, но возникла такая проблема: при чтении файла возникает ошибка ...

Что можно сделать если не хватает памяти? - C++
При компиляции программы в ВС3.1 MS-DOS через интерфейсное меню Compile (Alt+F9) выходит сообщение, что недостаточно оперативной памяти...

Dll вызывается, но при выделении памяти вылетает - C++ WinAPI
Доброго времени суток. Столкнулся с проблемой выделением памяти в dll. Вызываю функцию: char * word = "ABCDEF"; HINSTANCE...

Как вернуть в запросе значение по умолчанию, если SELECT возвращает NULL или ничего не возвращает? - PostgreSQL
Добрый день! Например я хочу чтобы донное выражение возвращало мне 0 или скажем 1, если результатом выражения rating вернется NULL: ...

Выводится сообщение о том, что не хватает памяти, хотя памяти хватает - Windows 7
Файлы подкачки отключил и включать не собираюсь. Когда свободной памяти остаётся примерно гиг-полтора начинают "помирать" программы(вкладки...

Ошибка при выделении памяти - C++
Когда убираю free(buf), то ошибки нету, а когда есть, то вылазит ошибка. Почему такое происходит? #include <stdlib.h> #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
17.11.2012, 08:58 #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
Эксперт С++
1636 / 1008 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
17.11.2012, 09:45 #3
В древних стандартах возвращался NULL, начиная кааца с C++98 выбрасывают bad_alloc. На любом более-менее современном компиляторе (выпущенном за последний где-нибудь десяток лет) можно смело расссчитывать на выброс исключений.
Байт
Эксперт C
15990 / 10258 / 1536
Регистрация: 24.12.2010
Сообщений: 19,345
17.11.2012, 09:57 #4
Nick Alte, Значит ли это, что в конструкции
C
1
2
3
4
 p = malloc(...);
if (p==NULL) {
  // Никогда не сработает
}
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
17.11.2012, 11:19 #5
Байт, имелось в виду выделение памяти с помощью оператора new. Сишные функции исключений не выбрасывают.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2012, 11:19
Привет! Вот еще темы с ответами:

Ошибка при выделении памяти - C++
Здравствуйте, друзья. Подскажите, пожалуйста, почему выскакивает ошибка при повторном выделении память (ведь память в куче удаляется...

Ошибка при выделении памяти - C++
Вопрос: из-за чего программа может рушится? int *NRRow = new int ; int *NRow = new int ; int *NCol = new int ; //тут...

Ошибка при выделении памяти - C (СИ)
что-то не так с выделением памяти, после запуска выдает ошибку, не могу понять где налажал #include <stdio.h> #include <stdlib.h> ...

Ошибки при выделении памяти - C++ Builder
Добрый вечер. В коде я например выделял динамическую память. char *c=new char ; Но не освобождал её при выходе из...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.11.2012, 11:19
Ответ Создать тему
Опции темы

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