|
1 / 1 / 0
Регистрация: 12.10.2011
Сообщений: 22
|
|
Утечка памяти?!16.10.2011, 10:04. Показов 1425. Ответов 9
Метки нет (Все метки)
Джесс Либерти и Дэвид Хорват "Освой самостоятельно С++ за 24 часа",
вырезка из листинга 15.4 (стр 233): Строка 26 - Утечка памяти? Есть сомнения, все-таки книга авторитетная, к тому же 4-е издание...
0
|
|
| 16.10.2011, 10:04 | |
|
Ответы с готовыми решениями:
9
Утечка памяти Утечка памяти в
|
|
Заблокирован
|
|
| 16.10.2011, 10:11 | |
|
в 26 строчке массив указателей Family принимает на себя ответственность за время жизни области памяти, на которую указывал указатель pCat
Вообще то, это не очень хорошая практика. По идее, тот кто захватывает ресурс, тот и должен его освобождать. Иначе возникает риск запутаться. Если где то в другом месте программы существует точка, в которой происходит освобождение всех захваченных ресурсов (в частности освобождаются участки памяти, на которые указывает Family) - то все оккейно. Если же этого нигде не происходит, то либо утечки памяти, либо расчет на то, что система сама придавит все захваченные ресурсы топором. /зы смотрите так же "интеллектуальные указатели"
0
|
|
|
1 / 1 / 0
Регистрация: 12.10.2011
Сообщений: 22
|
|
| 16.10.2011, 10:23 [ТС] | |
|
Не совсем понятно..
ИМХО: в 19 строке создается массив указателей и одновременно выделяется память для 500 объектов Cat, которые сразу же создаются, в строке 24 выделяется новый (другой) участок памяти для объекта Cat и в строке 26 адрес на этот участок присваивается i-му указателю массива Family, тем самым теряется адрес памяти, где !до сих пор! хранится объект Cat. То есть адрес потерян, а память не освобождена. Не так ли?
0
|
|
|
Заблокирован
|
||
| 16.10.2011, 10:30 | ||
|
В 19 строке создаётся массив указателей. Массив может сохранить в себе 500 указателей на объекты типа Cat Массив хранит в себе не сами объекты типа Cat, а только указатели на эти объекты. Кто создаёт сами объекты, и где они живут, массиву пофигу. Он хранит только указатели этих объектов. Указатели помнят адреса. Таким образом, зная указатель - знаешь и адрес. Family запоминает указатели, значит запоминает адрес объектов. В 24 строчке создаётся объект типа Cat. Адрес объекта помнит pCat в 26 строчке значение pCat передаётся в массив Family. Таким образом Family - принимает отвественность за время жизни объектов. Единственный, кто может нести ответственность за их корректное освобождение.
0
|
||
|
1 / 1 / 0
Регистрация: 12.10.2011
Сообщений: 22
|
|||||||||||
| 16.10.2011, 10:45 [ТС] | |||||||||||
|
Тьфу блин..
Я перепутал это
0
|
|||||||||||
| 16.10.2011, 10:51 | |
|
1
|
|
| 16.10.2011, 11:00 | |
|
2
|
|
| 16.10.2011, 11:09 | |
|
0
|
|
| 16.10.2011, 11:18 | ||
|
Не по теме:
Если для вас лично этот Либерти не авторитет - тогда объясните почему: Может быть вы не считаете его авторитетным только потому, что с высоты вашего полета базовый курс - это деццкий сад. Или может быть вы считаете, что он преподаёт не правильно (прививает вредительские навыки) Или вы просто придрались к самому названию книги (понятно, что название книги - жульнический маркеттинг). ИМХО для базового курса книга хорошая.
0
|
||
|
1 / 1 / 0
Регистрация: 12.10.2011
Сообщений: 22
|
||
| 16.10.2011, 11:33 [ТС] | ||
|
за 24 часа.... за 21 день... - это все маркетинговый ход. имхо название не имеет значения... главное - это содержание, а оно в книгах этого автора толковое, что подтверждается их (книг) популярностью.
зы
0
|
||
| 16.10.2011, 11:33 | |
|
Помогаю со студенческими работами здесь
10
Утечка памяти Утечка памяти Утечка памяти Утечка памяти Утечка памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|