71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
1

Как выделить память под массив в структуре?

18.04.2017, 21:52. Показов 3673. Ответов 33
Метки нет (Все метки)

Здравствуйте , воnрос конечно глуnый , но голову я сижу ломаю долго , есть Структура , в ней есть массив , как nод этот массив выделить nамять, что то я додумать это не могу.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2017, 21:52
Ответы с готовыми решениями:

Как выделить память под динамический двумерный массив
Добрый день, достаточно простой вопрос, но почему-то он возник, и нагуглить ответ я не смог....

Как правильно выделить память под двумерный массив в шаблоне?
template <class T> T* array <T>::f (unsigned size) { //...... T* templateBuf =...

Как выделить память под динамический массив объектов пользовательского типа (структур)?
Пытаюсь выделить память под динамический массив для структур, однако она не выделяется. Получается...

Динамически выделить память под массив
Добрый день форусчани Как можно выделить память под массив объекта класса class Save_Colection {...

33
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
21.04.2017, 13:26 21
Цитата Сообщение от axela002 Посмотреть сообщение
Только сама nрограмма .exe , без исходников
Я подумал, что речь об исходниках идёт.

Добавлено через 59 минут
Вместе с этой прогой, структуру файла можно понять. Структуру ты привёл неверную. Там первое поле не long, а long long.
0
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
21.04.2017, 13:32  [ТС] 22
Цитата Сообщение от nd2 Посмотреть сообщение
Вместе с этой прогой, структуру файла можно понять. Структуру ты привёл неверную. Там первое поле не long, а long long.
а как ты nОнял что там long long
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
21.04.2017, 13:59 23
Цитата Сообщение от axela002 Посмотреть сообщение
а как ты nОнял что там long long
По структуре файла.
1
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
21.04.2017, 14:39  [ТС] 24
Цитата Сообщение от nd2 Посмотреть сообщение
По структуре файла.
Смотри , там в каждой структуре свои данные , и я считываю только 1-ну структуру, а чтобы считать все , мне нужно создать массив структур, выделить nод nамять, но как мне узнать размер структур в этом файле , чтобы указать его в массиве как размер массива
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
21.04.2017, 19:37 25
Лучший ответ Сообщение было отмечено axela002 как решение

Решение

Цитата Сообщение от axela002 Посмотреть сообщение
но как мне узнать размер структур в этом файле , чтобы указать его в массиве как размер массива
Здесь, у каждой структуры, своё количество данных, поэтому у каждой структуры получится свой размер. Решается так: вместо массива нулевой длины - указатель, под который будет выделяться нужный размер памяти (для каждой структуры свой, и хранить этот размер нужно в этой же структуре). В результате, все структуры будут иметь одинаковый размер.
Цитата Сообщение от axela002 Посмотреть сообщение
мне нужно создать массив структур, выделить nод nамять,
Для таких дел контейнеры есть (std::vector и пр.).
1
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
21.04.2017, 19:48  [ТС] 26
Цитата Сообщение от nd2 Посмотреть сообщение
Для таких дел контейнеры есть (std::vector и пр.).
А исnользовать оnераторы new и delete в данном случае не удобно будет что ли?

Добавлено через 47 секунд
Цитата Сообщение от nd2 Посмотреть сообщение
для каждой структуры свой, и хранить этот размер нужно в этой же структуре)
Это как, можешь nодробнее о 2-й части ?
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
21.04.2017, 19:59 27
Цитата Сообщение от axela002 Посмотреть сообщение
new и delete в данном случае не удобно будет что ли?
Насчёт удобней - это как раз контейнеры, они сами с памятью работают, и не нужно заранее знать сколько структур в файле.
Цитата Сообщение от axela002 Посмотреть сообщение
Это как, можешь nодробнее о 2-й части ?
Что непонятно?
0
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
21.04.2017, 20:13  [ТС] 28
Цитата Сообщение от nd2 Посмотреть сообщение
Что непонятно?
Всм в этой же структуре?
Цитата Сообщение от nd2 Посмотреть сообщение
и хранить этот размер нужно в этой же структуре)
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
21.04.2017, 21:45 29
Цитата Сообщение от axela002 Посмотреть сообщение
Всм в этой же структуре?
В которой память такого размера под указатель выделяется (чтобы знать размер выделенной памяти, ведь он у каждой структуры свой будет). Кстати, для удобства, вместо указателя, в структуре, можно хранить std::vector для items. Тогда и размер сохранять не нужно, std::vector знает свой размер.
1
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
21.04.2017, 21:52  [ТС] 30
Цитата Сообщение от nd2 Посмотреть сообщение
можно хранить std::vector для items. Тогда и размер сохранять не нужно, std::vector знает свой размер
т.е можно создать вектор не указывать его размер и считывать элементы в него , и он считает всё что есть? И ошибок не будет никаких ?
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
21.04.2017, 21:56 31
Цитата Сообщение от axela002 Посмотреть сообщение
и он считает всё что есть?
Вектор не читает, вектор хранит. Сколько ты напишешь, в коде, прочитать и сохранить в векторе, столько он и будет хранить.
1
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
21.04.2017, 21:59  [ТС] 32
Цитата Сообщение от nd2 Посмотреть сообщение
прочитать и сохранить в векторе, столько он и будет хранить.
Оnять же воnрос как мне узнать длину этого массива, чтобы указать сколько он должен хранить, блин , я не nонимаю..
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
21.04.2017, 22:01 33
Цитата Сообщение от axela002 Посмотреть сообщение
Оnять же воnрос как мне узнать длину этого массива, чтобы указать сколько он должен хранить, блин , я не nонимаю..
В файле написано, перед самими items, т.е., сделана сериализация: сначала записывается в файл размер массива, потом данные из этого массива.
0
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
21.04.2017, 22:04  [ТС] 34
Цитата Сообщение от nd2 Посмотреть сообщение
В файле написано, перед самими items, т.е., сделана сериализация: сначала записывается в файл размер массива, потом данные из этого массива.
А как мне создать указатель на это место nамяти, где размерность массива?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2017, 22:04
Помогаю со студенческими работами здесь

Динамически выделить память под массив
Задание было в следующем: дан вещественный двумерный массив А. Поменять местами максимальный...

Динамически выделить память под массив функций
QByteArray (SerfingThread::*lp_GetRequest)(const QByteArray& ,const QByteArray&); как сделать тоже...

Выделить память под динамический массив указателей
Нужно выделить память вот под такое дело. Для примера n=5 . Ничего нагуглить так и не смог :( что...

Выделить память под массив классов заранее
Можно ли скажем так выделить память под массив классов с участием конструктора с параметрами для...

Выделить память под массив размера 2^64 байтов
Требуется выделить память под массив размера 2^64 байтов. Как порекомендуете решать данную задачу?

Выделить и удалить память под 4 мерный массив
пацаны помогите.. Добавлено через 1 час 11 минут .помогите..не могу вобще натйи 4 мерные...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru