Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вопрос по массиву


Zebra ©   (2007-08-08 16:03:00) 

Можно ли объявить безразмерный массив.


MasterOfReasons   (2007-08-14 02:32:00) [1]

На самом деле. После каждой записи в массив значений, просто увеличивай его длину.
А ещё лучше создай процедуру типа:
...
Procedure AddVolue(Out Arr: Array of Integer;Const NewVolue: Integer);
Begin
 SetLength(arr,Length(arr)+1);
 Arr[Length(arr)-1]:= NewVolue;
end;
...

И теперь созадавай любой динамический массив и с помощью этой функции записывай в него бесконечное количество элементов(хотя размер массива  в Delphi ограничен 2 Гб, если ты пишешь под Windows и 64 kb, если ты пишещь под DOS.Т.е. создать бесконечный массив невозможно в приципе)


patrushevd1982   (2007-08-13 23:18:00) [2]

Блин,... надо же ПРОЩЕ человеку объяснять:
var
 a: array of integer; //массив неизвестной длины
 i: integer;
begin
 setlength(a, 0); //убить массив
 setlength(a, length(a) + 1); //добавить место в массиве (увеличить его)
 a[length(a) - 1]:= b; //в это место (в последний элемент) записать значение b
 for i:= 0 to length(a) - 1 do
   //работаем с массивом в цикле
//и т.д и т.п.
end;


NONAME01   (2007-08-13 13:08:00) [3]

Массивы бывают СТАТИЧЕСКИЕ или ДИНАМИЧЕСКИЕ, тут нет сабжа.


tesseract   (2007-08-09 13:00:00) [4]


> Так это же не безразмерный :) Надо безразмерный.


Безразмерный в память не влезет :-) можно без явных размеров - через указатель, но память всё равно придяться выделить.


l_v   (2007-08-09 11:24:00) [5]

что есть безразмерный наверное бесконечный, что есть бесконечность - число деленное на ноль, объявлять так надо тогда:
Setlength(massiv,(1/0));
:)


DVM   (2007-08-09 10:52:00) [6]


> SetLength(a, <размер>);

Так это же не безразмерный :) Надо безразмерный.


JanMihail   (2007-08-08 22:46:00) [7]

Пишешь
a: array of ....

.......
SetLength(a, <размер>);


Anatoly Podgoretsky   (2007-08-08 21:04:00) [8]

> Zebra  (08.08.2007 16:03:00)  [0]

Нельзя - компьютер лопнет.


DVM   (2007-08-08 17:25:00) [9]


> Котик Б   (08.08.07 16:31) [3]


> type
>  TMyArray = array of...

И где здесь массив? Этой строкой вы объявили новый тип типа массива. Но не сам массив.

А вот

var
 m: TMyArray;

объявит массив и его размер равен 0. Т.е. размер у него все таки есть. :)


Котик Б   (2007-08-08 16:31:00) [10]


> DVM ©   (08.08.07 16:11) [2]
> Нельзя. У любого массива есть размер. Пусть даже нулевой.
>

Можно :)

type
 TMyArray = array of...


DVM   (2007-08-08 16:11:00) [11]

Нельзя. У любого массива есть размер. Пусть даже нулевой.
Можно объявить массив с динамически изменяемым в процессе работы программы размером - см [1].


Плохиш   (2007-08-08 16:04:00) [12]


> Zebra   (08.08.07 16:03)  
> Можно ли объявить безразмерный массив.

array of ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо