Динамические массивы
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Динамические массивы Expand / Collapse
Автор
Сообщение
09.11.2006 21:25
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 08.01.2007 20:35
Сообщ.: 7, Visits: 21
Как задать динамически массив? Какой заголовчный файл необходим?

Int *B=new A[n]

n=100

Заработает ли?

Сообщ. #907166
09.11.2006 21:42
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.08.2008 10:18
Сообщ.: 143, Visits: 1 405
сам скомпилировать не пробовал?

посмотри топик ниже - "о длинне массива". В C++ нет динамических массивов, есть альтернатива - классы из STL.

В любом случае, размер массива определяется на этапе компиляции. 

Если переменная  n у тебя глобальная или локальная с статическим классом памяти, и неинициализированна, тогда такая строка предполагает создание массива с длинной 0, так как такие переменные неинициализированные явно получают default значения 0. Если n - локальная с автоматическим классом памяти, тогда, при отсутствии инициализации, переменная содержит случайное число и какой размер массива ты получишь - вообще неизвестно.

Men in black

Сообщ. #907167
09.11.2006 23:44
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 08.01.2007 20:35
Сообщ.: 7, Visits: 21
Спасибо! Значит буду изучать   классы из stl.
Сообщ. #907170
10.11.2006 9:44
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Вячеслав немного погорячился насчет отутствия динамических массивов. Они есть. Однако он совершенно прав насчет STL.

Никаких особых заголовочных файлов для работы с динамическими массивами не нужно. Код тут совершенно простой:

int size = 100;
int* array = new int[size];
....
delete[] array;

Сообщ. #907176
10.11.2006 13:58
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.08.2008 10:18
Сообщ.: 143, Visits: 1 405
Я просто подумал, что под динамическими массивами понимались массивы с изменяемым размером. Т.е. создав массив - потом изменять его размер. Динамические массивы я всегда понимал в таком контексте. А, иначе, в каком смысле они могут быть динамическими? На это меня подтолкнула строка у spartak17 : 
int * B = new A[n]; n =100;
, где после n=100 размер должен был бы измениться.


Men in black
Сообщ. #907228
10.11.2006 14:05
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
А я всегда воспринимал динамический массив как область памяти точный размер которой становится известным на этапе выполнения программы. Но только сейчас понял что не правильно трактовал вопрос spartak17 и поторопился с ответом. Он хотел именно массив с изменяемым размером. В таком контексте твой ответ про STL в самую точку.
Сообщ. #907230
10.11.2006 14:10
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.08.2008 10:18
Сообщ.: 143, Visits: 1 405
Терминология, однако. Как - то, вот, сложилось у меня такое представление о них(д. массивах).  

Men in black
Сообщ. #907232
10.11.2006 22:39
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 08.01.2007 20:35
Сообщ.: 7, Visits: 21
Воот картина совершенно прояснилась..А то  в университете рассказывали про динамический массив...  просто я не так понял... а теперь окончательно разобрался... еще раз спасибо )
Сообщ. #907276
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 2:41