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

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

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


REA ©   (2003-01-27 19:00:00) 

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


gsu   (2003-01-27 20:28:00) [1]

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


Sha   (2003-01-27 20:15:00) [2]

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 19:45:00) [3]

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


REA   (2003-01-27 19:42:00) [4]

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


gsu   (2003-01-27 19:32:00) [5]

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

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

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


REA   (2003-01-27 19:26:00) [6]

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


gsu   (2003-01-27 19:15:00) [7]

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


REA   (2003-01-27 19:14:00) [8]

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


gsu   (2003-01-27 19:07:00) [9]

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


REA   (2003-01-27 19:06:00) [10]

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


gsu   (2003-01-27 19:03:00) [11]

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


Наверх

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