|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||||||
Свободна ли память?03.06.2010, 08:56. Показов 1559. Ответов 11
Метки нет (Все метки)
Существует ли способ определить на что указывает указатель - мусор (свободная память) или занятая память?
0
|
||||||
| 03.06.2010, 08:56 | |
|
Ответы с готовыми решениями:
11
Свободна IT вакансия сетевого администратора, торопитесь!))) Вероятность того, что в библиотеке книга свободна, равна 0,35 Разделил диск С но вторая половина стала свободна и не как не реагирует.что делать? |
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 03.06.2010, 11:52 | |
|
Нет.
Существует только одно предопределенное значение - NULL. Только NULL-указатель гарантированно не указывает ни на какой объект.
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 03.06.2010, 14:07 [ТС] | |
|
Ну почему же, допустим если самому контролировать выделения памяти то можно записывать какие участки заняты и потом проверять. По сути Windows имеет такие таблицы, тогда может средствами WinAPI?
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 03.06.2010, 14:13 | |
|
Если самому контролировать выделения памяти - то чем это отличается от "это все можно контролировать "над" объектом" ? В чем упрощение?
А что касается подхода собственно Windows и WinAPI, то выделение и удаление памяти осуществляет CRT - C Run-Time Library, и сама Windows к этому процессу не имеет отношения. Функции WinAPI типа VirtualAlloc() передают виртуальную память очень большими "кусками" менеджеру памяти СRT, который уже "нарезает" ее на мелкие кусочки нужного размера и распределяет их объектам.
1
|
|
|
|
|||
| 03.06.2010, 14:18 | |||
|
Эта проблема встала уже очень давно и многие компании пытались её решить через всяческие тэгированные и дескрипторные архитектуры. Многие из этих архитектур были созданы (либо на бумаге, либо в виде реального железа), по ним защитили множество кандидатских и докторских, после чего успешно всё отправлено на свалку. Как минимум потому, что очень много реального софта в процессе работы обращаются к неинициализированным участкам данных или некорректноработают с указателями, но это фатальным не является (типа прочитали неинициализировнное значение, но не использовали).
1
|
|||
|
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
|
|
| 03.06.2010, 14:18 | |
|
Напрямую, по моему, никак не выйдет. Можно конечно извращаться и например следить за этим блоком памяти(а там уже решать используется ли память или про нее забыли, я бы такое не писал) на предмет записи и тд, но это будет код, чтобы побаловаться да и только
0
|
|
|
|
|
| 03.06.2010, 15:03 | |
|
Хотя что-то я загнул. Речь идёт не об инициализированных данных, а о выделенной и невыделенной памяти. Проблема решается тем, что ты пишешь свой собственный менеджер памяти и ВСЕ вызовы по выделению памяти заруливаешь на свой менеджер. Я не помню, как это правильно сделать по синтаксису, но Си++ повзволяет в new указать конкретную память. Только фо факту это оченб быстро надоест, потому как если где-то забудешь и память выделишь любым другим способом - то у тебя всё накроется медным тазом
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 03.06.2010, 15:10 | |
|
На самом деле, могу дать коллеге insideone полезный совет - использовать идиому "умных указателей" (которая уже официально войдет в Стандарт C++11, а неофициально уже поддерживается std::tr1) и не ломать голову над этой проблемой.
Поверь, в разработке ПО есть гораздо более существенные проблемы, над которыми действительно стоит ломать голову и тратить время, чем рутинное управление памятью ....
1
|
|
|
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
|
|
| 03.06.2010, 15:20 | |
|
Я тут пошевелил опилками... если нужно выделить память именно в этот блоке то пробуем выделить. Если занято - смещаемся до свободного места и там выделяем.
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,974
|
|
| 03.06.2010, 15:20 | |
|
Ещё хорошей привычкой было бы сразу после
delete some_pointer; дописывать some_pointer = NULL;
0
|
|
|
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
|
|
| 03.06.2010, 15:26 | |
|
Можно память вообще не декомитить, а держать про запас
ПС. "Я не жадный, я домовитый"
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||
| 03.06.2010, 20:05 [ТС] | ||
Уж и раньше читал, но видимо не внимательно, сейчас присмотрелся по лучшеВообще на самом деле вопрос у меня встал не критичный, просто DirectX при Alt-TAB из полноэкранного приложения некоторые свои COM ресурсы освобождает (а выделял то я) они становятся битые... тут пожалуй и умные указатели не помогут
0
|
||
| 03.06.2010, 20:05 | |
|
Помогаю со студенческими работами здесь
12
Дорожка разделена на клетки. Для каждой клетки указано, свободна ли она. Можно ли замостить дорогу плиткой 1x2
Когда ставишь память в DIMM2, при этом приходится память переворачивать Dll на C++ кушает память, как правильно удалять и освобождать память? Внешняя память PIC: как нарастить внутреннюю память данных? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|