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

Как сложить динамические массивы?   Найти похожие ветки 

← →
REA ©   (2003-01-27 19:00) [0]

Сделал функцию, которая возвращает динамический массив. Как бы теперь ее результат присуммировать в конец другого массива желательно без CopyMemory (например Slice, Copy) и т.п. Строки ведь можно плюсом складывать...


← →
gsu ©   (2003-01-27 19:03) [1]

д. массивы (данные) целиком вообще не копируются (у мя, если кто умеет покажите, плиз)
а у тя я бы установил длину 1 массива и поэлементно ...


← →
REA ©   (2003-01-27 19:06) [2]

Да поэлементно то понятно что можно...


← →
gsu ©   (2003-01-27 19:07) [3]

(-:|~
ежли узнаешь кинь на мыло, оки ?


← →
REA ©   (2003-01-27 19:14) [4]

А не будет ли утечки памяти, если одному дин. массиву присвоить другой? Или лучше первому сначала явно Nil присвоить?


← →
gsu ©   (2003-01-27 19:15) [5]

>> одному дин. массиву присвоить другой
как a:=b ?


← →
REA ©   (2003-01-27 19:26) [6]

Ну да. Они же пойнтеры вроде почти за исключением того, что Delphi отслеживает счетчик ссылок на массив. Хотя видимо если в массиве что-то есть и ему присвоить другой, то его счетчик ссылок уменьшится и став равным 0 массив уничтожится.


← →
gsu ©   (2003-01-27 19:32) [7]

>> Или лучше первому сначала явно Nil присвоить
и первый сгинет в небытие
просто переприсваивай, а ненужные указатель заниляй

>> если в массиве что-то есть и ему присвоить другой, то его счетчик ссылок
>> уменьшится
увеличится

>> массив уничтожится
когда не будет ни одного указателя на него, т.е a,b, ...:=nil



← →
REA ©   (2003-01-27 19:42) [8]

Ну потом то понятно, что увеличится, но сначала то уменьшится.


← →
gsu ©   (2003-01-27 19:45) [9]

>> сначала то уменьшится
С самого начала увеличится от 0 до 1 (-:|~



← →
Sha ©   (2003-01-27 20:15) [10]

2 REA © (27.01.03 19:00)
Вот эквивалент для a:=a+b; (еслибы так было можно писать).

SetLength(a,Length(a)+Length(b));
System.Move(b[0],a[Length(a)],Length(b)*SizeOf(b[0]);


← →
gsu ©   (2003-01-27 20:28) [11]

т.е к концу а цепляется начало b, здорово



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

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



Память: 0.47 MB
Время: 0.01 c
1-15535
REA
2003-01-28 12:02
2003.02.06
Нужно ли выгружать BPL


3-15412
MsGuns
2003-01-21 19:36
2003.02.06
Вывод в QReport DBMemo


3-15468
mate
2003-01-20 14:21
2003.02.06
QuickReport


14-15855
Tsr
2003-01-18 18:09
2003.02.06
Как импортировать в The Bat адресную книгу Outlook ?


9-15387
Денис Валерьевич
2002-08-19 22:47
2003.02.06
Слепить два спрайта




   Наверх