Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];
Внизвопрос по массиву Найти похожие ветки
← →
Zebra (2007-08-08 16:03) [0]Можно ли объявить безразмерный массив.
← →
Плохиш © (2007-08-08 16:04) [1]
> Zebra (08.08.07 16:03)
> Можно ли объявить безразмерный массив.
array of ...
← →
DVM © (2007-08-08 16:11) [2]Нельзя. У любого массива есть размер. Пусть даже нулевой.
Можно объявить массив с динамически изменяемым в процессе работы программы размером - см [1].
← →
Котик Б (2007-08-08 16:31) [3]
> DVM © (08.08.07 16:11) [2]
> Нельзя. У любого массива есть размер. Пусть даже нулевой.
>
Можно :)
type
TMyArray = array of...
← →
DVM © (2007-08-08 17:25) [4]
> Котик Б (08.08.07 16:31) [3]
> type
> TMyArray = array of...
И где здесь массив? Этой строкой вы объявили новый тип типа массива. Но не сам массив.
А вот
var
m: TMyArray;
объявит массив и его размер равен 0. Т.е. размер у него все таки есть. :)
← →
Anatoly Podgoretsky © (2007-08-08 21:04) [5]> Zebra (08.08.2007 16:03:00) [0]
Нельзя - компьютер лопнет.
← →
JanMihail © (2007-08-08 22:46) [6]Пишешь
a: array of ....
.......
SetLength(a, <размер>);
← →
DVM © (2007-08-09 10:52) [7]
> SetLength(a, <размер>);
Так это же не безразмерный :) Надо безразмерный.
← →
l_v (2007-08-09 11:24) [8]что есть безразмерный наверное бесконечный, что есть бесконечность - число деленное на ноль, объявлять так надо тогда:
Setlength(massiv,(1/0));
:)
← →
tesseract © (2007-08-09 13:00) [9]
> Так это же не безразмерный :) Надо безразмерный.
Безразмерный в память не влезет :-) можно без явных размеров - через указатель, но память всё равно придяться выделить.
← →
NONAME01 (2007-08-13 13:08) [10]Массивы бывают СТАТИЧЕСКИЕ или ДИНАМИЧЕСКИЕ, тут нет сабжа.
← →
patrushevd1982 © (2007-08-13 23:18) [11]Блин,... надо же ПРОЩЕ человеку объяснять:
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;
← →
MasterOfReasons © (2007-08-14 02:32) [12]На самом деле. После каждой записи в массив значений, просто увеличивай его длину.
А ещё лучше создай процедуру типа:...
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.Т.е. создать бесконечный массив невозможно в приципе)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.047 c