С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
#1

Динамический массив строк - C++

19.05.2010, 00:31. Просмотров 2259. Ответов 6
Метки нет (Все метки)

Мне нужно считать строки из файла но я не знаю сколько будет строк! и занести их в массив указателей на строки. чтобы было так

*a[] = {"Первая строка",
"Вторая строка"};

Сколько строк я не знаю. Про динамическое выделение памяти знаю но как его сюда приделать не знаю)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2010, 00:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический массив строк (C++):

Динамический массив строк - C++
Здравствуйте нужна помощь по коду. Моя задача: создать динамический массив строк( по поводу терминов, возможно ошибка, но делать нужно то,...

Динамический массив строк - C++
Добрый вечер. Подскажите, пожалуйста, в чем может быть проблема. Первый элемент массива почему-то автоматически пропускается: ...

динамический массив строк - C++
Вот такое дело есть а как зделать так чтобы я мог ввести то количество строк что я хочю ? а не 3. Тоесть сделать динамический массив строк....

Динамический массив для строк - C++
Добрый вечер! Мне нужно обработать текстовый файл, длину строк я заранее не знаю. Язык Си. Знаю, что нужно использовать malloc, а как...

Двухмерный динамический массив строк - C++
Всем привет) Помогите пожалуйста создать двумерный динамический массив строк, почитал Подбельского, вроде сделала всё как по учебнику, но...

Класс динамический массив строк - C++
Здравствуйте! Есть программа, создающая динамический массив строк. Помогите пожалуйста разобраться, что значат эти строки: (Если кому не...

6
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
19.05.2010, 06:18 #2
сначала прочитать строку, добавить её в список
когда список построен, посчитать элементы
создать динамический массив указателей char **a
C
1
a = (char **) calloc(количество, sizeof(char *));
перенести указатели из списка в динамический массив (берётся каждый узел списка и его указатель на строку (тоже динамическую) присваивается a[i])
потом нужно сам список удалить из памяти, но при этом освобождать только сами узлы

должно остаться: массив указателей a, в нём указатели на строки, количество известное

при завершении нужно каждую строку в массиве указателей освободить, а потом уже сам массив a освободить
0
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
19.05.2010, 17:24  [ТС] #3
сначала прочитать строку, добавить её в список
В какой список?

1 a = (char **) calloc(количество, sizeof(char *));
эта строчка для меня очень страшная) и не понятная. ОСОбенно calloc - мне кажется это устаревшее чтото. new везде же. мне нада с++.

Узел списка
это что еще такое?

Добавлено через 4 часа 43 минуты
up.........
0
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,481
20.05.2010, 01:14 #4
Krist_ALL, заранее нельзя выделить память под непойми что, либо пробегитесь по всему файлу и посчитайте количество строк (через getline или ещё как, тут не особо знаю) и выделите массив указателей, а далее их уже будете заполнять. Или же считывайте в большой двумерный массив который точно вместит чтобы не было в файле, а потом копируйте в такой который не будет содержать пустых строк. А вообще лучше первой строкой в файле делать пометку сколько в нем строк и дальше все становится очень просто
1
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
20.05.2010, 02:37 #5
Цитата Сообщение от Krist_ALL
эта строчка для меня очень страшная) и не понятная. ОСОбенно calloc - мне кажется это устаревшее чтото. new везде же. мне нада с++.
не, тогда тебе нужен вектор строк (string которые), без выделений памяти (они сами выделяют)
1
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
20.05.2010, 10:24  [ТС] #6
а мне кажется будет гуд елси использовать структуры динамические с единственным поле string.

Легкое выделение памяти...
что скажите?
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
20.05.2010, 10:41 #7
вектор и так использует выделение памяти
1
20.05.2010, 10:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2010, 10:41
Привет! Вот еще темы с ответами:

Класс, динамический массив строк - C++
Здравствуй, пользователь. Сегодня, наконец выбравшись из рид онли и пройдя процесс регистрация, я спешу попросить тебя о помощи. Что я...

Двумерный динамический массив строк - C++
Надо создать двумерный динамический массив размером 5x5 (5 ячеек, для 5 строк). Заполнить его строчками текста, принятыми с клавиатуры. ...

Динамический массив строк. Ввод / вывод - C++
Доброго времени суток!=) Помогите разобраться. Пишу функцию удаления строки из файла. организовал следующим образом, записал все что есть в...

Динамический массив строк фиксированной длины - C++
Добрый день! Помогите осилить простую задачу: Нужен массив переменного размера строк фиксированной длины. Пока что сделал такой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.