Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Richar
0 / 0 / 0
Регистрация: 22.02.2016
Сообщений: 1
#1

Как оценить объём кучи

22.02.2016, 18:58. Просмотров 248. Ответов 4
Метки нет (Все метки)

Как оценить объём кучи при динамическом выделении памяти? Чтобы проверить можно ли добавлять в память ещё что-то
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2016, 18:58
Ответы с готовыми решениями:

Получать различные начала кучи при создании кучи внутри цикла
Можно ли как-то такое провернуть, чтобы на каждой итерации цикла получались...

Как избежать использования кучи проверок?
В общем есть файл конфига, в котором хранятся переменные, так вот, я хотел бы...

Как узнать объём выделеной динамичесой памяти?
sizeof(new_alloc) в этом случаи бесполезно так как указатель у меня всегда...

Повреждение кучи
После выполнения программы выдаёт ошибку Debug Assertion Failed Помогите найти...

Повреждние кучи
Понимаю, тема стара как мир, но похожих случаев не нашел, к сожалению. Есть...

4
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
22.02.2016, 19:12 #2
почему нельзя было сформулировать как "как определить объем свободной памяти в куче, которую бы можно было использовать для своих целей в программе?"
1
Croessmah
++Ͻ
14489 / 8270 / 1553
Регистрация: 27.09.2012
Сообщений: 20,312
Записей в блоге: 3
Завершенные тесты: 1
22.02.2016, 19:20 #3
Средствами языка - никак.
0
hoggy
Заблокирован
Эксперт С++
22.02.2016, 20:15 #4
Цитата Сообщение от Richar Посмотреть сообщение
Как оценить объём кучи при динамическом выделении памяти?
проводник открываете, и смотрите, сколько процесс скушал.
Цитата Сообщение от Richar Посмотреть сообщение
Чтобы проверить можно ли добавлять в память ещё что-то
в многозадачных системах - никак.

если требуется отказоустойчивость тогда:
1.
заранее, ещё при старте процесса откусываем сразу годный кусок памяти,
в котором размещаем все важные для жизнеобеспечения узлы.

там же предусматриваем память под резервный буфер.

2.
если new кинет исключение,
используем резервный буфер, что бы удержать процесс на плаву.
начинаем процедуру восстановления после паники.
при этом, в резервном буфере должно оставаться достаточно места,
для отработки процедуры самоуничтожения.

3.
если не удалось восстановиться после паники,
используем остаток буфера,
что бы корректно свернуть все текущие дела,
и аккуратно закрываем приложение
0
Croessmah
++Ͻ
14489 / 8270 / 1553
Регистрация: 27.09.2012
Сообщений: 20,312
Записей в блоге: 3
Завершенные тесты: 1
22.02.2016, 20:34 #5
Цитата Сообщение от hoggy Посмотреть сообщение
если new кинет исключение,
используем резервный буфер, что бы удержать процесс на плаву.
также нужно segfault ловить,
потому как new может и не кинуть исключение,
а ошибка произойдет уже при доступе к памяти.
1
22.02.2016, 20:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2016, 20:34

Повреждение кучи
Приветствую! Сделал, казалось бы, простую программу, но у меня возникает ошибка...

Ошибка кучи
Выдает ошибку: "ОС Windows инициировала точку останова в Lab2.exe.Это может...

Повреждение кучи
Есть код #include <iostream> using namespace std; struct STUDENT { char...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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