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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2009, 13:51   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Как создать массив от переменной длины без mAlloc?

Уж больно неохото маллок писать =\
А ar[a] - нельзя
Слышал, что можно как-то так:
ar=new array[a];

Только не знаю точную реализацию)
Нужно ли его потом освобождать?
TwiX вне форума Ответить с цитированием
Старый 27.10.2009, 13:55   #2
mYziK
Пользователь
 
Регистрация: 18.09.2009
Сообщений: 38
По умолчанию

Код:
ar = new array[a];
Это в плюсах только будет работать.
А освобождать:
Код:
delete [] ar;
mYziK вне форума Ответить с цитированием
Старый 27.10.2009, 14:13   #3
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
По умолчанию

Можно через векторы:

Код:
#include <vector>

std::vector<тип_элементов> a[size];
В случае необходимости изменение размера массива будет происходить автоматически.

Подробнее см. у Шилдта раздел Библиотека стандартных шаблонов
Быть радикальным - значит понять вещь в её корне. К.Маркс
nazavrik вне форума Ответить с цитированием
Старый 27.10.2009, 15:44   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от nazavrik Посмотреть сообщение
Можно через векторы:

Код:
#include <vector>

std::vector<тип_элементов> a[size];
Вероятно Вы имели ввиду
Код:
std::vector<тип_элементов> a(size); // Круглые скобки
Цитата:
Сообщение от TwiX
Уж больно неохото маллок писать =\
А ar[a] - нельзя
Слышал, что можно как-то так:
ar=new array[a];
Раз уж пишете на C++, то действительно лучше new использовать, но принципиальных отличий от malloc у new нет, за исключением того, что new, при создании объекта класса в динамической памяти вызывает его конструктор, а malloc - нет.
netrino вне форума Ответить с цитированием
Старый 27.10.2009, 16:10   #5
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
По умолчанию

netrino, да, действительно. Спасибо.
Быть радикальным - значит понять вещь в её корне. К.Маркс
nazavrik вне форума Ответить с цитированием
Старый 27.10.2009, 16:50   #6
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Цитата:
Сообщение от mYziK Посмотреть сообщение
Код:
ar = new array[a];
Это в плюсах только будет работать.
А освобождать:
Код:
delete [] ar;
Да, именно это) Спсибо
Красивее чем маллок выглядит =)
TwiX вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны два слова одинаковой длины. Присвоить переменной К число, равное количеству попарно одинаковых букв. dimon_home Паскаль, Turbo Pascal, PascalABC.NET 1 16.06.2009 08:31
массивы переменной длины curly182 Паскаль, Turbo Pascal, PascalABC.NET 12 20.05.2009 21:17
Как создать приложение без иконки? dolphin705 Общие вопросы Delphi 17 05.05.2009 14:36
Имя переменной как переменная. Как получить доступ к такой переменной? Denni Microsoft Office Access 8 02.04.2009 10:06
Массив неопределённой длины Влажимир Общие вопросы Delphi 2 01.04.2008 10:14