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

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

Войти
Регистрация
Восстановить пароль
 
SergeyTszyu
0 / 0 / 1
Регистрация: 18.03.2013
Сообщений: 19
#1

Как изменить размер динамического массива структур после того как был добавлен товар - C++

06.05.2014, 22:39. Просмотров 271. Ответов 1
Метки нет (Все метки)

Подскажите как мне изменить размер динамической массива структур после того как был добавлен товар , countProduct-это и есть размер массива структур.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void addProduct(int countProduct, Product *product)
{
    cout << setw(50) << "Добавлення товару" << endl;
            system("cls");
            cout << "Номер склада" << endl;
            cin.ignore(3, '\n') >> setw(2) >> product[i].numberStore;
            cout << "Код продукта" << endl;
            cin.ignore(5, '\n') >> setw(4) >> product[i].codeProduct;
            cout << "Имя продукта" << endl;
            cin.ignore(16, '\n') >> setw(15) >> product[i].nameProduct;
            cout << "Норматив запасу" << endl;
            cin.ignore(6, '\n') >> setw(5) >> product[i].standartRec;
            cout << "Количество продуктов" << endl;
            cin.ignore(6, '\n') >> setw(5) >> product[i].countProduct;
            cout << "Цена" << endl;
            cin >> setw(7) >> product[i].Price;
 
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2014, 22:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как изменить размер динамического массива структур после того как был добавлен товар (C++):

Изменить размер динамического массива - C++
Дан класс, который описывает двумерный массив class matr{ private: int **matrix; int rows, columns; Создается объект myMatrix,...

Задать размер динамического массива через переменную, обявленную как extern - C++
Привет народ, скажите, почему не компилирует: #include&quot;stdafx.h&quot; #include&quot;iostream&quot; using namespace std; extern const int y; int...

Как изменить размер уже созданного массива в классе? - C++
Доброго дня, друзья! Столкнулся с такой проблемой, если вкратце, то выглядит он следующим образом: есть класс A, в котором в...

Удаление динамического массива структур - C++
Если удалять массив структур как обычно пишут, то при запросе следующей структуры из массива на вывод она отображается. То есть происходит...

Очищение динамического массива структур - C++
Здравствуйте, Господа. Есть структура, например такая: typedef struct cont1 { long int n; char name; char hoho; }CONTACT; И...

Передача динамического массива структур в функцию - C++
Доброго времени суток:) Имеется входной файл,который представлен в виде пар через запятую (010)-(110),(001)-(100),... надо загнать его...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
newbie666
Заблокирован
06.05.2014, 23:03 #2
Цитата Сообщение от SergeyTszyu Посмотреть сообщение
Подскажите как мне изменить размер динамической массива структур
никак. Если ты аллоцировал память под какой то объект динамический, то расширить этот блок памяти уже нельзя, т.к. память, ну допустим, оператором new занимается непрерывным блоком, дальше - другие приложения или же твоё, аллоцирует память под другие переменные, которым могут разместиться сразу за блоком исходного твоего массива, тоесть куда ты его расширять будешь? Залезать в память другой переменной кокой - нибуть, следующей в памяти за исходной? Вот по этому твой динамический массив никак расширить нельзя, т.к. нельзя гарантировать не занятость необходимого размера памяти для непрерывного блока, который нужно прикрепить к исходному, чтоб образовать новый.
Для подобных целей нужно динамический создавать новый объект, размер которого равен размеру исходного + дополнительный размер, на который ты хочешь расшириться, далее из старого объекта копировать данные в новый и удалять старый. Вот так вот.
Чтоб не заниматься подобной ерундой и были придуманы уж более 10-и летия назад контейнеры STL, например std::vector или же std::string, которые делают всю грязную работу за тебя. Тоесть тебе не нужно беспокоиться об реалоцирование памяти объекта при его увеличение, это всё сделается за тебя. Конечно же, это относительно не быстрая операция и есть свои нюансы (можно зарезервировать сразу предполагаемый объём - reserve и тд), но в общем то на сегодняшний день, любой программист, по крайней мере, кто хоть отдалённо себя таким считает, должен знать STL.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2014, 23:03
Привет! Вот еще темы с ответами:

Освобождение памяти динамического массива структур - C++
Поставлена следующая задача: сделать любую структуру, сгененировать в неё рандомные данные, записать в бинарник. Потом считать из...

Передача динамического массива структур в функцию - C++
Помогите, пожалуйста переделать. Нужно передать динамический массив. Есть такой код: #include&lt;iostream&gt; using namespace std; void...

Доступ к элементам динамического массива из структур - C++
Всем доброго времени суток! Проблема вот какая. Есть вот такой вот код. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include&lt;string&gt; ...

Обращение к элементу динамического массива структур - C++
Само задание: http://cs412722.vk.me/v412722398/4e77/fUkq93u2HDE.jpg пока написал только это: #include &lt;iostream&gt; using namespace std;...


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

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

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