Форум программистов, компьютерный форум CyberForum.ru

Выделение динамической памяти для чтения каждой структуры из файла - C++

Восстановить пароль Регистрация
 
SlowAR
0 / 0 / 0
Регистрация: 30.04.2014
Сообщений: 48
07.05.2014, 23:06     Выделение динамической памяти для чтения каждой структуры из файла #1
Здравствуйте! Никак не получается выделить динамическую память под каждую структуру из файла, учитывая, что я не знаю сколько структур в файле. Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,579
07.05.2014, 23:26     Выделение динамической памяти для чтения каждой структуры из файла #2
Просмотри файл, подсчитай сколько там структур. Выделишь память и при повторном просмотре считаешь.
SlowAR
0 / 0 / 0
Регистрация: 30.04.2014
Сообщений: 48
07.05.2014, 23:27  [ТС]     Выделение динамической памяти для чтения каждой структуры из файла #3
так а если файл бинарный
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.05.2014, 01:53     Выделение динамической памяти для чтения каждой структуры из файла #4
Цитата Сообщение от SlowAR Посмотреть сообщение
так а если файл бинарный
С бинарным проще. Курсор в конец файла, tellg() выдаст количество байт в файле, разделить на размер структуры.
SlowAR
0 / 0 / 0
Регистрация: 30.04.2014
Сообщений: 48
08.05.2014, 06:21  [ТС]     Выделение динамической памяти для чтения каждой структуры из файла #5
alsav22, я так делал, но оно пишет, что размер массива должен быть константой
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.05.2014, 06:55     Выделение динамической памяти для чтения каждой структуры из файла #6
Цитата Сообщение от SlowAR Посмотреть сообщение
я так делал
Вот это делали?
Цитата Сообщение от SlowAR Посмотреть сообщение
Никак не получается выделить динамическую память
Если это делали, то не будет писать:
Цитата Сообщение от SlowAR Посмотреть сообщение
что размер массива должен быть константой
Динамически создавайте массив, и будет вам счастье...
Praktolock
 Аватар для Praktolock
58 / 58 / 0
Регистрация: 29.11.2011
Сообщений: 272
08.05.2014, 07:11     Выделение динамической памяти для чтения каждой структуры из файла #7
А как вы память выделяете? Можно цитату из кода?)
SlowAR
0 / 0 / 0
Регистрация: 30.04.2014
Сообщений: 48
08.05.2014, 09:01  [ТС]     Выделение динамической памяти для чтения каждой структуры из файла #8
Praktolock,
C++
1
2
3
4
5
6
7
8
9
10
11
fseek(f1, 0L, SEEK_END);
size = ftell(f1) / sizeof(structura);
fseek(f1, 0L, SEEK_SET);
 
structura *mas[50];   //если тут вместо 50 написать size - будет ошибка
while(! feof(f1))
{
mas[num] = new structura;
fread(mas[num], sizeof(structura), 1, f1);
num++;
}
Praktolock
 Аватар для Praktolock
58 / 58 / 0
Регистрация: 29.11.2011
Сообщений: 272
08.05.2014, 09:12     Выделение динамической памяти для чтения каждой структуры из файла #9
C++
1
structura *mas[50];
И что тут динамического? Это статический массив из 50 указателей.
Вот так динамически:
C++
1
structura *mas=new structura[50];
только delete[] потом незабудь сделать

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
fseek(f1, 0L, SEEK_END);
int size = ftell(f1) / sizeof(structura);
fseek(f1, 0L, SEEK_SET);
 
structura **mas=new structura*[size];   //если тут вместо 50 написать size - будет ошибка
int num=size;
while(feof(f1))
{
mas[num] = new structura;
fread(mas[num], sizeof(structura), 1, f1);
num++;
}
Как-то так должно проканать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2014, 09:22     Выделение динамической памяти для чтения каждой структуры из файла
Еще ссылки по теме:

выделение динамической памяти для char C++
Динамическое выделение памяти для структуры в функции C++
C++ Выделение динамической памяти для массива точек

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

Или воспользуйтесь поиском по форуму:
SlowAR
0 / 0 / 0
Регистрация: 30.04.2014
Сообщений: 48
08.05.2014, 09:22  [ТС]     Выделение динамической памяти для чтения каждой структуры из файла #10
Praktolock, спасибо
Yandex
Объявления
08.05.2014, 09:22     Выделение динамической памяти для чтения каждой структуры из файла
Ответ Создать тему
Опции темы

Текущее время: 09:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru