Главная страница
    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.043 c
1-1182772773
Victor456
2007-06-25 15:59
2007.09.09
Перемещение окна


6-1163016663
Yegorchic
2006-11-08 23:11
2007.09.09
IdMessage и аттачи


15-1186900481
Тимоха
2007-08-12 10:34
2007.09.09
Что за ошибка такая


15-1187068376
КольцовЮрий
2007-08-14 09:12
2007.09.09
Друзья, есть у кого нибудь примеры исходников...


15-1186851551
Sagot
2007-08-11 20:59
2007.09.09
Не обрабатываются события TWebBrowser в ie7





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский