![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
isergey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 28.5.2008 Репутация: нет Всего: нет |
Друзья, помогите, может я чего-то не понимаю, но есть вот такой кусок кода:
Интересует меня следующая проблема, как освободить память из-под указателей errmsg и addinfo. Эти указатели заполняются в функции ZOOM_connection_error информацией об ошибке. Далее происходит формирование исключения на основе этой информации и выброс его. Что происходит с нашими указателями? Как я понимаю, при таком положении дел (как в листинге) происходит утечка памяти? |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
А почему именно константные указатели ? и почему указатели есть а выделенной памяти по этим указателям нету ?
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
EgorTheBlade |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 5.12.2009 Репутация: нет Всего: -1 |
"Как я понимаю, при таком положении дел (как в листинге) происходит утечка памяти? "
Используйте в вашем случае smart_ptr. |
|||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
Вы уверены, что ZOOM_connection_error принимает именно указатели на константы?
Вы уверены, что он выделяет под них память, а не просто присваивает значения внутренних статических указателей? Если оба ответа утвердительны, узнайте, как он выделят память (malloc или new) и освободите ее (free или delete соответственно), освободив тип от константности через const_cast. А потом тут же пошлите лучи ненависти и негодования тому, кто написал эту функцию, оформленные в багрепорте -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
Modul |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Примерчик:
--------------------
I'll be back ! |
|||
|
||||
isergey |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 28.5.2008 Репутация: нет Всего: нет |
Принимаются именно статические указатели. Вобщем полез я в недры и узрел, что значения этим указателям присваиваются функцией, примерно так:
|
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 2 Всего: 121 |
Тогда ничего удалять не надо.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |