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

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

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

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

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

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

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

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

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

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

Ошибка при динамическом выделении памяти - C++
почему у меня возникет ошибка вот тут struct TOVAR *New = new struct TOVAR; пишит недопустимый неполный тип на struct подчеркивает...

Ошибка при динамическом выделении памяти - C++
Я не понимаю почему, но почему-то пример по динамическому выделению памяти, взятый с этой веб-страницы: http://cppstudio.com/post/9555/...

Ошибка при выделении памяти с помощью malloc - C++
Помогите выдает ошибку в рядочке :"Ar = ( far *)malloc(size*sizeof(int));" полный текст програмы: #include "stdafx.h" using namespace...

Куча была повреждена. При выделении памяти - C++
Всем привет. Вот в этой строчке(83) : XY->NextXY = new StructXY; Не понимаю что не так. После её работы выдаёт что куча повреждена. ...

Создание исключения при динамическом выделении памяти - C++
Вот код из учебника в нем мне все понятно. #include<iostream> #include<cstdlib> //exit() #include<new> using std::cout;using...

Вылет при выделении памяти под вектор - C++
Пишу на С++. Создаю vector<float>. Преждевременно выделяю под него место с помощью resize. Нужно выделить 640381050 элементов. В итоге...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
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
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,930
Завершенные тесты: 1
17.11.2012, 09:45     Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc? #3
В древних стандартах возвращался NULL, начиная кааца с C++98 выбрасывают bad_alloc. На любом более-менее современном компиляторе (выпущенном за последний где-нибудь десяток лет) можно смело расссчитывать на выброс исключений.
Байт
Эксперт C
15830 / 10157 / 1522
Регистрация: 24.12.2010
Сообщений: 19,140
17.11.2012, 09:57     Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc? #4
Nick Alte, Значит ли это, что в конструкции
C
1
2
3
4
 p = malloc(...);
if (p==NULL) {
  // Никогда не сработает
}
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
17.11.2012, 11:19     Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc? #5
Байт, имелось в виду выделение памяти с помощью оператора new. Сишные функции исключений не выбрасывают.
Yandex
Объявления
17.11.2012, 11:19     Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc?
Ответ Создать тему
Опции темы

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