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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Подсчет в строке слов, состоящих только из цифр.(функция) http://www.cyberforum.ru/cpp-beginners/thread1168613.html
5. Подсчет в строке слов, состоящих только из цифр.
C++ Исключить из числа цифры, стоящие между первой и последней цифрой числа. Использовать классы Исключить из числа цифры, стоящие между первой и последней цифрой числа #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<io.h> #include<string.h> #include<iostream.h> #include<math.h> http://www.cyberforum.ru/cpp-beginners/thread1168605.html
Поворот avl дерева C++
Объясните пожалуйста как работает поворот бинарного дерева, прочитал ряд статей и просто не могу сообразить почему написано поворот вправо если же туда никак нельзя применить элементарные понятия поворота как такового, в правилах написано: поворот ребра связующего корень и его дочерний узел вправо, но почему тогда 20 присоединяется вообще к другому узлу? не пойму логики слова поворот если...
C++ Найти сумму первых n-четных натуральных чисел (найти ошибку)
Нужно найти сумму первых n-четных натуральных чисел. Ошибка вылетает на 13 строке, должно быть я не правильно код составил, алгоритм не тот может. Помогите мне включить эту рекурсию #include <iostream> #include <conio.h> using namespace std; int main() { int sum=0; int n; int i=2; cout << "Enter n: ";
C++ Посчитать сколько цифр в слове http://www.cyberforum.ru/cpp-beginners/thread1168584.html
это моя первая программа, подскажите что тут не так #include <iostream> #include <string.h> #include <stdio.h> int main( int argc, char* argv) { int a, n, i; string k;
C++ Перевод кода из Pascal в С++ Люди добрые прошу помочь в переписи кода из Pascal в С++, помогите пожалуйста !:cry: function st2(k:integer): integer; var j, rez: integer; begin rez:=1; for j:=1 to k do rez:=rez*2; st2:=rez; end; function a(sta: string):integer; подробнее

Показать сообщение отдельно
newbie666
Заблокирован
06.05.2014, 23:03     Как изменить размер динамического массива структур после того как был добавлен товар
Цитата Сообщение от SergeyTszyu Посмотреть сообщение
Подскажите как мне изменить размер динамической массива структур
никак. Если ты аллоцировал память под какой то объект динамический, то расширить этот блок памяти уже нельзя, т.к. память, ну допустим, оператором new занимается непрерывным блоком, дальше - другие приложения или же твоё, аллоцирует память под другие переменные, которым могут разместиться сразу за блоком исходного твоего массива, тоесть куда ты его расширять будешь? Залезать в память другой переменной кокой - нибуть, следующей в памяти за исходной? Вот по этому твой динамический массив никак расширить нельзя, т.к. нельзя гарантировать не занятость необходимого размера памяти для непрерывного блока, который нужно прикрепить к исходному, чтоб образовать новый.
Для подобных целей нужно динамический создавать новый объект, размер которого равен размеру исходного + дополнительный размер, на который ты хочешь расшириться, далее из старого объекта копировать данные в новый и удалять старый. Вот так вот.
Чтоб не заниматься подобной ерундой и были придуманы уж более 10-и летия назад контейнеры STL, например std::vector или же std::string, которые делают всю грязную работу за тебя. Тоесть тебе не нужно беспокоиться об реалоцирование памяти объекта при его увеличение, это всё сделается за тебя. Конечно же, это относительно не быстрая операция и есть свои нюансы (можно зарезервировать сразу предполагаемый объём - reserve и тд), но в общем то на сегодняшний день, любой программист, по крайней мере, кто хоть отдалённо себя таким считает, должен знать STL.
 
Текущее время: 01:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru