Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2010, 09:29   #1
kefir
Пользователь
 
Регистрация: 12.04.2010
Сообщений: 13
По умолчанию C++ - изменение размера массива

Доброе утро.
Хотел бы узнать, как в C++ менять размер динамического массива?

Код:
int *arr;
arr = new int[10];
for (int i = 0; i < 10; i++)
{
	arr[i] = i * i;
	printf("%d\n", arr[i]);
}
// и, скажем, вот тут мне нужно уменьшить его размер до 5-ти элементов.
Как видите, создаю я его БЕЗ участия malloc() и free(); использую new и delete - также хотелось бы узнать основные отличия меду двумя этими способами. Благодарю.

Последний раз редактировалось kefir; 19.06.2010 в 09:34.
kefir вне форума Ответить с цитированием
Старый 19.06.2010, 11:42   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от kefir Посмотреть сообщение
Доброе утро.
Хотел бы узнать, как в C++ менять размер динамического массива?

Код:
int *arr;
arr = new int[10];
for (int i = 0; i < 10; i++)
{
	arr[i] = i * i;
	printf("%d\n", arr[i]);
}
// и, скажем, вот тут мне нужно уменьшить его размер до 5-ти элементов.
Как видите, создаю я его БЕЗ участия malloc() и free(); использую new и delete - также хотелось бы узнать основные отличия меду двумя этими способами. Благодарю.
Менять его средствами C++ нельзя, в целом можно, конечно, использовать C-шную realloc, но не рекомендуется ) Единственный выход - создать массив большей длины и переписать в него существующий. malloc() и free() - стандартные функции из библиотеки C, а new/delete/new[]/delete[] - операторы языка C++. Отличия в основном проявляются при создании объектов классов, new помимо выделения памяти ещё и вызывает конструктор класса, а delete - деструктор. Собственно на этом отличия обычно и заканчиваются, многие реализации описывают new/delete на базе malloc/free
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение размера формы maksim_serg Microsoft Office Excel 0 16.04.2010 04:22
Изменение размера файла в С++ Vladya Помощь студентам 0 08.12.2009 18:21
Изменение размера панели AbekIn3D Общие вопросы Delphi 3 05.11.2009 13:30
Изменение размера динамического массива налету Zeraim Общие вопросы Delphi 12 26.07.2009 14:23
Изменение размера шрифта Nando Microsoft Office Excel 4 07.03.2009 16:45