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

Динамическое выделение памяти под объект - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программу для поиска сочетаний в С. http://www.cyberforum.ru/cpp-beginners/thread237765.html
Вот программа на С, должна выдавать сочетания из m по n, но почему-то получаются не все варианты. Как её можно исправить? Очень хотелось бы получить ответ до завтра. Писал не я, сразу предупреждаю....
C++ Строки символов Здравствуйте. Задача такая: Язык С++ Дан двумерный массив из символов(10 строк по 80 символов). Нужно из каждой строки удалить 1 элемент, и вывести полученный текст на экран. Очень... http://www.cyberforum.ru/cpp-beginners/thread237763.html
C++ Вычислить сумму чисел ряда Фибоначчи с 5 по 12
Здравствуйте, я только начинаю осваивать этот язык и очень нужна помощь. 1. Вычислить сумму чисел ряда Фибоначчи с 5 по 12. Распечатать числа ряда по 15-й и значение суммы. 2. Определите...
C++ Чтение файла с массивом дробных чисел
Добрый день, до это момента долго шарил форум.. решил создать свою тему. Надо чтобы прорамма читала файл формата grd и заполненный дробными числами типа 123.35 352.646 634.235.... и заносила их в...
C++ Borland c++ Написать программу http://www.cyberforum.ru/cpp-beginners/thread237736.html
Здравствуйте , вот нужно зделать Программу Текст помощи для не которой программы организован в виде линейного списка Каждая компонента текста помощи содержит термин (слово) и текст,содержащий...
C++ Создание массива указателей на векторы Доброго времени суток! Дано: н-дцать векторов(библиотека STL) Необходимо: создать массив указателей на эти вектора с целью дальнейшего их заполнения. Понимаю, что решение на поверхности,... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
04.02.2011, 16:53
Dejust, в языке C есть функция realloc, которая позволяет выделить дополнительную память (или наборот, урезать ее) для массива (если новый размер массива больше старого, то существующие данные в нем не теряются). В С++, однако, отсутствуют аналогичные средства для работы с памятью, поэтому нужно использовать либо контейнерные типы стандартной библиотеки шаблонов (как посоветовали выше), чья реализация скрывает от пользователя все аспекты выделения-освобождения памяти, либо вручную выделять новый массив большего размера, копировать в него элементы старого и удалять старый:
C++
1
2
3
4
5
6
foo* oldf = new foo [size1];
//... работаем с массивом
foo* newf = new foo [size2]; // size2 > size1
copy(newf, oldf, size1); // Некоторая вспомог. функция для копирования существующих элементов массива
delete[] oldf; // Освобождаем память, на которую указывает oldf
oldf = newf; // Теперь oldf указывает на область памяти большего размера, куда мы скопировали старые элементы
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru