![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
VLGeorgievich |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
А если не известна константа, которая в данном примере равна 100. Как динамически создавать по одному указателю на char в переменной strings? (вопрос конечно построен жутко, но объяснил как смог, может быть поймете ![]() |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 8 Всего: 146 |
Это сообщение отредактировал(а) 586 - 15.6.2009, 22:40 |
|||
|
||||
VLGeorgievich |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
Но не обязательно строк будет 100. Их может быть как 5 так и 500. Можно ли указатели на char* создавать по одному. В этом собственно и суть моего вопроса.
|
|||
|
||||
ller |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 4.8.2008 Где: г. Таганрог Репутация: 2 Всего: 4 |
где то так Добавлено через 2 минуты и 25 секунд т.е. нужен динамический масив?
Добавлено через 3 минуты и 28 секунд Таким образом решается куча проблем с памятью. что забудете где то, что то удалить, или наоборот удалится лишнее. |
||||
|
|||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 8 Всего: 146 |
Без проблем:
Можно... А зачем? Может нужно изменить размер массива указателей? |
|||
|
||||
VLGeorgievich |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
До этого места я доходил. Дальше - больше. А если в процессе выполнения программы необходимо досоздать еще 10 указателей на char*.
Что то типа
это вообще неправильный код, но я думаю может он отразит суть проблемы Добавлено через 1 минуту и 6 секунд
А как это сделать. Это именно то что мне нужно. Добавлено через 4 минуты и 51 секунду А если использовать собственный класс
|
||||||
|
|||||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 8 Всего: 146 |
Это называется изменение размера динамического массива. Для этого нужно создать новый массив, скопировать значения указателей из старого массива указателей в новый массив указателей, удалить старый массив и досоздать оставшиеся 10 указателей. Если для тебя это сложно, используй std::vector. |
|||
|
||||
ller |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 4.8.2008 Где: г. Таганрог Репутация: 2 Всего: 4 |
Нет, здесь значение, которое заталкиваешь |
|||
|
||||
VLGeorgievich |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
Я понял надо делать так:
Если понадобиться увеличить массив то создаю новый, копирую значения, удаляю старый и досоздаю новые указатели. Грамотен ли данный код, либо фигня какая-то получилась и можно сделать много проще и лучше? ![]() Добавлено через 1 минуту и 26 секунд (хочу первый раз в жизни сделать программу по уму ![]() |
|||
|
||||
ller |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 4.8.2008 Где: г. Таганрог Репутация: 2 Всего: 4 |
Иначе динамические массивы не работают. Только выделять память можно с запасом, чтоб часто не перераспределять.
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 8 Всего: 146 |
|
|||
|
||||
VLGeorgievich |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
ller и 586, благодарю.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |