Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: 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 вся ветка

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
8-15771
Карелин Артем
2002-10-23 16:09
2003.02.06
Текст с градиентной окантовкой.


14-15927
Дремучий
2003-01-20 23:46
2003.02.06
Посоветуйте http-сайт-менеджера.


3-15514
mate
2003-01-21 11:53
2003.02.06
Запрос в MSSQL


1-15663
Savik
2003-01-29 17:49
2003.02.06
Автоосвобождение динамического массива


7-15976
dimich1978
2002-11-29 11:32
2003.02.06
Мастера плиз, определение загруженности процессора