![]() |
|
Модераторы: bsa |
![]()
|
|
| Forsaken |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 30.12.2008 Репутация: нет Всего: 3 |
Здравствуйте
Я только начал изучать C++. Проверьте, пожалуйста, правильно ли я работаю с массивом указателей на строки. В общем, я делаю массив указателей на строки (другими словами массив строк), таким вот образом:
А затем я написал функцию которая прокручивает массив сторк освобождая элемент [0] и добавляет туда новую строку из параметра psName -переданного как аргумент в функцию. Вот код функции:
Подскажите пожалуйста правильно ли я делаю и можно ли это сделать оптимальнее? Благодарю всех кто прочел мой пост! |
||||
|
|||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
Вы прокручиваете список, сдвигая его к концу и на место первого элемента вставляете свою строчку. Тогда почему вы освобождаете память бывшего первого элемента (который всего лишь стал вторым) вместо того, чтобы освободить последний элемент, который ушел за границу массива?
|
|||
|
||||
| Forsaken |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 30.12.2008 Репутация: нет Всего: 3 |
Anikmar,
Спасибо Вам за помощь Anikmar! Облажался с этим и еще за границы массива вышел.. Вот так вроде бы правильно будет:
Это сообщение отредактировал(а) Forsaken - 25.4.2009, 20:06 |
|||
|
||||
| Forsaken |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 30.12.2008 Репутация: нет Всего: 3 |
Подскажите, пожалуйста, еще -нужно ли удалять глобальный массив указателей на строки при завершении программы или все память (в месте с массивом) освободится автоматически?
|
|||
|
||||
| Dov |
|
||||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
Думаю, что правильно будет так:
Ты же память не выделял, значит и возвращать её не нужно. Используешь так, например:
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
||||
|
|||||
| Forsaken |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 30.12.2008 Репутация: нет Всего: 3 |
Dov,
Да! Так действительно правильно! И у в Вашем варианте точно ничего удалять ненужно и все очень хорошо. Спасибо Вам за помощь Dov, к сожалению немогу нажать "+", но как только наберу 100 постов обязательно нажму!) Еще раз спасибо Вам! |
|||
|
||||
![]()
|
| Правила форума "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. |