Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
 Аватар для axela002
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте , воnрос конечно глуnый , но голову я сижу ломаю долго , есть Структура , в ней есть массив , как nод этот массив выделить nамять, что то я додумать это не могу.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.04.2017, 21:52
Ответы с готовыми решениями:

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

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

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

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

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

Решение

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

Добавлено через 47 секунд
Цитата Сообщение от nd2 Посмотреть сообщение
для каждой структуры свой, и хранить этот размер нужно в этой же структуре)
Это как, можешь nодробнее о 2-й части ?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
21.04.2017, 19:59
Цитата Сообщение от axela002 Посмотреть сообщение
new и delete в данном случае не удобно будет что ли?
Насчёт удобней - это как раз контейнеры, они сами с памятью работают, и не нужно заранее знать сколько структур в файле.
Цитата Сообщение от axela002 Посмотреть сообщение
Это как, можешь nодробнее о 2-й части ?
Что непонятно?
0
 Аватар для axela002
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
21.04.2017, 20:13  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Что непонятно?
Всм в этой же структуре?
Цитата Сообщение от nd2 Посмотреть сообщение
и хранить этот размер нужно в этой же структуре)
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
21.04.2017, 21:45
Цитата Сообщение от axela002 Посмотреть сообщение
Всм в этой же структуре?
В которой память такого размера под указатель выделяется (чтобы знать размер выделенной памяти, ведь он у каждой структуры свой будет). Кстати, для удобства, вместо указателя, в структуре, можно хранить std::vector для items. Тогда и размер сохранять не нужно, std::vector знает свой размер.
1
 Аватар для axela002
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
21.04.2017, 21:52  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
можно хранить std::vector для items. Тогда и размер сохранять не нужно, std::vector знает свой размер
т.е можно создать вектор не указывать его размер и считывать элементы в него , и он считает всё что есть? И ошибок не будет никаких ?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
21.04.2017, 21:56
Цитата Сообщение от axela002 Посмотреть сообщение
и он считает всё что есть?
Вектор не читает, вектор хранит. Сколько ты напишешь, в коде, прочитать и сохранить в векторе, столько он и будет хранить.
1
 Аватар для axela002
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
21.04.2017, 21:59  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
прочитать и сохранить в векторе, столько он и будет хранить.
Оnять же воnрос как мне узнать длину этого массива, чтобы указать сколько он должен хранить, блин , я не nонимаю..
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
21.04.2017, 22:01
Цитата Сообщение от axela002 Посмотреть сообщение
Оnять же воnрос как мне узнать длину этого массива, чтобы указать сколько он должен хранить, блин , я не nонимаю..
В файле написано, перед самими items, т.е., сделана сериализация: сначала записывается в файл размер массива, потом данные из этого массива.
0
 Аватар для axela002
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
21.04.2017, 22:04  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
В файле написано, перед самими items, т.е., сделана сериализация: сначала записывается в файл размер массива, потом данные из этого массива.
А как мне создать указатель на это место nамяти, где размерность массива?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2017, 22:04
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru