![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамический массив [D7, Win95/98, Win2k, WinXP]
stas_a © (2003-01-23 17:44:00)Эдрасьте ВСЕ!!! Подскажите пожалуйста:
Декларирую(Глобально) динамический массив
var myarr: array of boolean;
затем в коде пишу
Setlength(Myarr,1);
Такой вопрос как потом(во время выполнения программы) увеличить длинну массива на 1 без потери данных и как уменьшить с потерей последнего значения.
Chubais (2003-01-23 18:13:00) [1]han_malign © (23.01.03 17:53)
заповедник больше к этой ветке подходит...
gsu (2003-01-23 18:13:00) [2]а в .net улучшенная сборка мусора, может ему туда ? (-:|~
han_malign (2003-01-23 18:11:00) [3]Частые изменения размеров массивов - не слишком хорошо.
- связные списки тоже не решают проблемы фрагментации памяти, а выделиний/отпусканий памяти даже больше, и доступ к элементам геморойный. TList и подобные тоже реалокируют память при изменении размера.
Так что никуда не деться, разве что, если известно максимальное возможное количество элементов, то лучше задать максимальный размер(все равно если к страницам(4096 б) не обращаться, винды их в свап скинут) и переменную для фактического размера.
stas_a (2003-01-23 17:58:00) [4]Спасибо ! ! ! :)
Johnmen (2003-01-23 17:55:00) [5]Setlength
gsu (2003-01-23 17:55:00) [6]+ Setlength(Myarr, length(Myarr));
- Setlength(Myarr, length(Myarr)-1);
MBo (2003-01-23 17:54:00) [7]SetLength именно так и сделает.
Частые изменения размеров массивов - не слишком хорошо.
han_malign (2003-01-23 17:53:00) [8]For a long-string or dynamic-array variable, SetLength reallocates the string or array referenced by S to the given length. Existing characters in the string or elements in the array are preserved, but the content of newly allocated space is undefined.
Lingvo:
Preserve -
1. сохранять [-нить];
предохранять [-нить];
заготовлять впрок (овощи и т.п.);
2. (mst pl.) консервы /pl. (a. opt.);
варенье;
заповедник