Вниз
Скачать: CL | DM;

Динамический массив   Найти похожие ветки 

← →
stas_a   (2003-01-23 17:44) [0]

Эдрасьте ВСЕ!!! Подскажите пожалуйста:
Декларирую(Глобально) динамический массив

var myarr: array of boolean;

затем в коде пишу

Setlength(Myarr,1);

Такой вопрос как потом(во время выполнения программы) увеличить длинну массива на 1 без потери данных и как уменьшить с потерей последнего значения.


← →
han_malign ©   (2003-01-23 17:53) [1]

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.);
варенье;
заповедник


← →
MBo ©   (2003-01-23 17:54) [2]

SetLength именно так и сделает.
Частые изменения размеров массивов - не слишком хорошо.


← →
Johnmen ©   (2003-01-23 17:55) [3]

Setlength


← →
gsu ©   (2003-01-23 17:55) [4]

+ Setlength(Myarr, length(Myarr));
- Setlength(Myarr, length(Myarr)-1);


← →
stas_a   (2003-01-23 17:58) [5]

Спасибо ! ! ! :)


← →
han_malign ©   (2003-01-23 18:11) [6]

Частые изменения размеров массивов - не слишком хорошо.
- связные списки тоже не решают проблемы фрагментации памяти, а выделиний/отпусканий памяти даже больше, и доступ к элементам геморойный. TList и подобные тоже реалокируют память при изменении размера.
Так что никуда не деться, разве что, если известно максимальное возможное количество элементов, то лучше задать максимальный размер(все равно если к страницам(4096 б) не обращаться, винды их в свап скинут) и переменную для фактического размера.


← →
Chubais ©   (2003-01-23 18:13) [7]

han_malign © (23.01.03 17:53)
заповедник больше к этой ветке подходит...


← →
gsu ©   (2003-01-23 18:13) [8]

а в .net улучшенная сборка мусора, может ему туда ? (-:|~



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
7-5310
@Ujin
2002-11-22 20:09
2003.02.03
Что не так в этом коде?


3-4770
qwerty2
2003-01-15 13:43
2003.02.03
QReport: Количество записей в группе


1-4830
Асу-1
2003-01-24 11:01
2003.02.03
Поворот


1-4838
roman001
2003-01-23 12:13
2003.02.03
Перевод из римских чисел в арабские


3-4768
zolotov
2003-01-16 14:55
2003.02.03
BDE




   Наверх