Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.038 c
15-1186560851
Галинка
2007-08-08 12:14
2007.09.09
DecimalSeparator опять


15-1187008383
Empleado
2007-08-13 16:33
2007.09.09
Предлагаю акцию


15-1186679676
TUser
2007-08-09 21:14
2007.09.09
Сообщу-ка я


2-1187097353
SamProf
2007-08-14 17:15
2007.09.09
Как написать свой intraweb компонент


15-1185919860
Смысл
2007-08-01 02:11
2007.09.09
64 бита не нужны





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский