![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| IvanoffAndrey |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: нет Всего: 2 |
Согласно Страуструпу, минимум свободной памяти, которая должна быть доступна программе это память необходимая для генерации исключения bad_alloc.
Это значит всего лишь, что насколько я понимаю bad_alloc (естественно потомок дригих классов) представляет некое подобие статической переменной которую одну и ту же постоянно бросают. Почему бы, при написании своих исключений (конечно же включенный в общую иерархию), не делать таким образом. К примеру:
Я не описал инициализацию переменной EXC нарочно - и так вроде понятно. [B]Таким образом, поскольку данная статическая переменная будет инициализировать задолго до создания объекта (размер которого может быть очень большим) а именно на этапе запуска проги (помоему), то память мы уже под исключение зарезервировали и на его бросание хватит места.[B] Если это не так, то я не знаю каким образом тратися память на бросание исключение кроме как на создание объекта????? Кто что думает по этому поводу.? Это сообщение отредактировал(а) IvanoffAndrey - 14.9.2007, 17:10 --------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Если не хватает памяти даже на исключение, то программе пора убиваться об стену. Ей бессмысленно делать что-либо другое - памяти-то нет.
|
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
||||
|
||||
| IvanoffAndrey |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: нет Всего: 2 |
Действительно, к примеру скинуть что-нибудь временное на хард. Добавлено через 29 секунд
--------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
||||
|
|||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Не то Александрески, не то Саттер, не то они оба, но есть слухи что в современных условиях на PC проверять успешность выделения памяти бессмыссленно. Вот что по этому поводу говорит malloc(3)
Добавлено через 27 секунд Короче, если программе не хватает памяти, то она об этом попросту может никогда не узнать. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
предполагались, что эти попытки уже были сделаны гыгык |
|||
|
||||
| Mihhail |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 13.9.2007 Репутация: нет Всего: 9 |
Абсолютно, - если уж программе удалось стартануть, то при этом старте должна быть зарезервирована память под её личные нужды для действий в нештатных ситуациях при дальнейшей загрузке и работе. А уж если не удалось.....??? А такой случай: Загружена одна программа, начинает загружаться вторая, из-за нехватки памяти первая скидавается на хард и этим он забивается под завязку. А вторая при этом полностью занимает память. Первая - заблокирована до окончания работы второй.!? Теоретика однако.... Это сообщение отредактировал(а) Mihhail - 14.9.2007, 21:22 |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
||||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
У первого не помню (его всё же больше всякие изящества интересуют |
|||
|
||||
| IvanoffAndrey |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: нет Всего: 2 |
Плиз скинте название книги. Я очень люблю всякие книжки читать. Но об том авторе ничего прежде не слышал. Как понимаю это все еще классика?
Добавлено через 7 минут и 21 секунду
Насколько я помню больше одного исключения (может больше двух) С++ не может обработать вообще и в этой ситуации просто грубо завершает программу?. --------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
||||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Саттер: "Сложные задачи по C++" и (новее и интереснеее) "Новые сложные задачи по C++". Да - классика, но не совсем тривиальная. |
|||
|
||||
| IvanoffAndrey |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: нет Всего: 2 |
А что за книга у Александрески?
--------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |