Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамический массив [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.);
варенье;
заповедник


Наверх

Титульная страница Поиск, карта сайта Написать письмо