![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вопрос по массиву
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 ...