![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| polin11 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 6.6.2015 Репутация: нет Всего: нет |
Взял листинг кода из книги Стивен Прата Язык программирования С++.
Меня терзают смутные сомнения нет ли здесь утечки памяти, указатель определенный в функции buildstr в куче, не очищается в ней. Очищается указатель ps на результат функции. Адреса &ps!=&pstr, указатели указывают на на одну область. Хочу в своей программе сделать похожий подход, функция возвращает указатель на символьный массив
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 12 Всего: 459 |
Там все верно. Главное что указатели указывают на одну память, оператор освобождения тоже с [] и тип аргумента функции delete совпадает с тем что было в new, а так можно освобождать любую копию указателя. На самом деле переменная указателя хранит только адрес памяти. Вся служебная информация по операции выделения хранится в самой ячейки памяти за границами выделенной памяти. Чаще всего по отрицательному смещению от начала выделенной области. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| disputant |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: нет Всего: 3 |
А какой смысл использовать C++ как C? Вы программируете на C++? Так string вам в руки (раз уж символьный массив), в крайнем случае unique_ptr или shared_ptr... Пусть за вас работает язык. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |